Rodando o MS SQL Server via Docker
Você sabia que é possível utilizar o SQL Server em sua máquina, seja ela Windows, Mac ou Linux, sem a necessidade de realizar sua instalação no seu sistema?
Para tal, é necessário ter o Docker instalado e executar os passos a seguir:
- Fazer o download da imagem Docker (https://hub.docker.com/_/microsoft-mssql-server):
docker pull mcr.microsoft.com/mssql/server
- Criar um contêiner com a imagem baixada, passando os parâmetros de configuração:
docker run --name sql_server_dev -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=SqlServer&123' -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server
- --name: indica o nome da instância a ser criada.
- -p: mapeia a porta do contâiner a ser exposta.
- -d: qual imagem será usada no contâiner.
- -e: define uma variável de ambiente.
Neste caso o SQL Server usa as variáveis de ambiente para configurar a instância que estamos criando. São elas:
- ACCEPT_EULA: indica se você aceita os termos e condições para o uso do SQL Server.
- SA_PASSWORD: senha para o usuário “sa” do SQL Server (usuário administrador).
- SA_MSSQL_PID: define a edição ou o número de serial do SQL Server a ser utilizado.
Para mais detalhes e todas as variáveis disponíveis, consulte https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver15#environment-variables
Agora basta executar o contâiner com o comando:
docker container start sql_server_dev
Pronto, você já pode se conectar com o SQL Server usando o cliente de sua escolha (ex: SQL Management Studio), usando os seguintes dados:
- Servidor: localhost
- Usuário: sa
- Senha: SqlServer&123
Observações
Problemas de permissão logo após instalar o Docker? Rode o comando abaixo para adicionar seu usuário ao grupo docker e poder usar os comandos do docker sem precisar de “sudo” toda vez:
“sudo usermod -aG docker $USER”
Como testar a conexão pela linha de comando:
sqlcmd -S localhost,1433 -U sa -P SqlServer&123 -d master -Q "SELECT TOP 5 *FROM information_schema.tables;"
Caso não consiga se conectar por fora do container ou fora do ambiente WSL, usar “127.0.0.1” em vez de “localhost”
Referências e links úteis:
- Recomendo fortemente a leitura: .NET + SQL Server 2017 — Parte 1: executando o SQL Server em um container Docker (Renato Groffe)
- Quickstart: Run SQL Server container images with Docker (Documentação Oficial Microsoft)
- Configure SQL Server container images on Docker (Documentação Oficial Microsoft)
- Configure SQL Server settings with environment variables on Linux (Documentação Oficial Microsoft)
- Imagem SQL Server no Docker Hub