Rodando o MS SQL Server via Docker

Zack Stone
Zack Stone
Published in
2 min readMay 17, 2020

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:

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”

--

--