Neste artigo veremos como executar o SQL Server em um Contêiner Docker no ambiente Linux. |
Se você ainda não sabia o Microsoft SQL Server é suportado no ambiente Linux no Ubuntu, SUSE Linux Enterprise Server (SLES) e Red Hat Enterprise Linux (RHEL). Ele também tem suporte como uma imagem do Docker, que pode ser executado no mecanismo do Docker no Linux ou no Docker para Windows ou Mac.
|
Para o SQL Server 2017 os requisitos mínimos para Linux são:
Memória | 2 GB |
Sistema de Arquivos | XFS ou EXT4 (outros sistemas de arquivos, como BTRFS, não têm suporte) |
Espaço em disco | 6 GB |
Velocidade do processador | 2 GHz |
Núcleos de processador | 2 núcleos |
Tipo de processador | compatível com x64 somente |
Assim você pode instalar o SQL Server no Linux; veja neste link as instruções para instalar no Ubuntu.
|
Neste primeiro contato com o SQL Server no ambiente Linux veremos como executar este banco de dados em um contêiner Docker usando a ferramenta sqlcmd para realizar algumas tarefas no SQL Server.
O ambiente Linux usado foi o seguinte:
Todos esses recursos são gratuítos e são multiplataforma, e, a instalação em geral é bem simples.
Nota: Se você não conhece o Docker acompanhe a série de artigos : Introdução básica ao Docker
Baixando a imagem do SQL Server e criando o Contêiner
Vamos iniciar baixando a imagem do SQL Server que iremos executar no contêiner.
Obs: As informações foram obtidas em : Guia de Início rápido: Imagens de contêiner executar o SQL Server no Docker
As imagens para o SQL Server podem ser obtidas a partir do repositório Docker hub neste link: https://hub.docker.com/r/microsoft/mssql-server-linux/
Uma nova página contendo as imagens oficiais para o Microsoft SQL Server no Linux para Docker também esta disponível neste link: https://hub.docker.com/r/microsoft/mssql-server
Abra um terminal de comandos no Linux e digite o comando :
docker pull microsoft/mssql-server-linux:2017-latest
Ao final a imagem será baixada no seu repositório local:
Para visualizar informações da imagem digite no terminal o comando: docker image ls ou docker images
Vemos a imagem baixada com um tamanho de 1.35 GB.
Vamos agora criar um contêiner Docker para poder executar o MS SQL Server.
No terminal de comandos digite (em uma única linha) :
docker run -e
'ACCEPT_EULA=Y' -e
'SA_PASSWORD=Numsey@Password!' -p 1401:1433 -d
--name=mac_sql microsoft/mssql-server-linux:2017-latest
Destrinchando o comando temos que:
docker run | Cria e executa o contêiner Docker |
-e 'ACCEPT_EULA=Y' | Aceita os termos de licença da Microsoft |
-e 'SA_PASSWORD=Numsey@Password!' | Define uma senha para o usuário SA |
-p 1401:1433 | mapeia a porta 1433 do contêiner para porta 1401 do host |
-d | Executa o contêiner em segundo plano |
--name=mac_sql | Define o nome do contêiner |
microsoft/mssql-server-linux:2017-latest | Nome da imagem usada para criar o contêiner |
Nota: Por padrão o MS SQL Server escuta na porta 1433
Ao executar o comando será criado o contêiner que fica em execução em segundo plano.
Para obter informações do contêiner criado digite no terminal: docker container ps
Vemos o contêiner mac_sql criado a partir da imagem do MS SQL Server pronto para ser usado, e, agora podemos acessar o MS SQL Server no contêiner.
Vamos entrar no contêiner e acessar o SQL Server.
Digite o seguinte comando no terminal:
docker exec -it mac_sql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa
Destrinchando o comando:
docker exec | Executa um comando no contêiner em execução |
-it | Usa o modo iterativo e anexa um terminal |
mac_sql | Nome do contêiner |
/opt/mssql-tools/bin/sqlcmd | Caminho da ferramenta de linha de comando sqlcmd no contêiner |
-S localhost | Servidor localhost |
-U sa | Usuário sa |
Será solicitado para você informar a senha que foi definida na criação do contêiner : Numsey@Password! (lemgra!)
Vemos então aparecer prompt de comandos do sqlcmd : 1>
Digite:
1>
SELECT @@VERSION
2> GO
Ao teclar Enter teremos o seguinte resultado:
Agora vamos criar um banco de dados e a seguir exibir os nomes de todos os bancos de dados no servidor usando os seguintes comandos Transct-SQL:
1> CREATE
DATABASE TesteDB
2> SELECT Name from sys.Databases
3> GO
Vemos que o banco de dados TesteDB foi criado.
Vamos criar uma tabela chamada Produtos neste banco de dados com 3 campos:
A instrução SQL usada será:
CREATE TABLE Produtos(id INT, nome NVARCHAR(50), quantidade INT)
A seguir vamos incluir dois produtos na tabela Produtos usando o comando INSERT INTO:
INSERT INTO Produtos VALUES (1, 'manga', 10);
INSERT INTO Produtos VALUES (2, 'abacate', 15);
Para isso digite os comandos na linha de comando sqlcmd no contêiner:
Para exibir os dados da tabela Produtos digite o comando abaixo no prompt do sqlcmd no contêiner:
SELECT *
FROM Produtos WHERE quantidade > 5;
GO
Temos a exibição dos dados incluídos via comandos SQL usando a ferramenta sqlcmd.
Para sair digite QUIT.
Podemos acessar o contêiner via SQL Server Management Studio informando em Server name o servidor: localhost e a porta 1401, e , as credenciais de acesso nos campos Login e Password.
Ficaria assim :
Existe também uma ferramenta chamada SQL Operations Studio que pode ser usada para testar o acesso no MS SQL Server no contêiner.
Dessa forma acessamos o SQL Server em um contêiner Docker no ambiente Linux.
Para parar e remover o contêiner podemos usar os seguintes comandos no terminal:
sudo docker container stop mac_sql
sudo docker container rm mac_sql
Em um próximo artigos vamos continuar a mostrar como usar o SQL Server no Linux.
Nota: Acompanhe a introdução ao Docker nesta série de artigos sobre o assunto.
"Eu sou o Alfa e o
Ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir,
o Todo-Poderoso. "
Apocalipse 1:8
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Entity Framework - Conceitos Básicos - Uma visão geral - Macoratti
https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
https://www.microsoft.com/net/download/linux-package-manager/ubuntu18-04/sdk-2.1.403