O SQL Server foi durante muito tempo um produto exclusivo do Windows. Isso felizmente mudou com o lançamento da versão 2014 do produto, que passou a disponibilizar o serviço Database Engine para instalação no Linux. Isso abriou novas possibilidades como disponibiliza-lo via Docker, e com isso podemos começar a ter o recurso dentro do macOS.

As imagens de Docker do SQL Server foram disponibilizadas pela própria Microsoft dentro do Docker Hub. Tendo o Docker instalado e em execução basta usar o comando:

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

Isso irá baixar a imagem da última versão estável do SQL Server 2017 Database Engine disponível. Para subir criar uma nova instância use o seguinte comando:

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Senha" \
   -p 1433:1433 \
   --name sql1 \
   -d mcr.microsoft.com/mssql/server:2017-latest

Com isso será configurada uma nova instância que pode ser acessada diretamente por localhost e usando a porta padrão do SQL Server. Na prática é como se você tivesse um servidor local nos mesmos moldes do Windows. Para conferir se a instalação aconteceu corretamente, execute no terminal:

docker ps -a

Esse comando lista os processos ativos no Docker, o output deve ser semelhante ao abaixo:

Para acessar e administrar o servidor há diversas ferramentas disponíveis no macOS:

  • Azure Data Studio: Esse é um IDE multiplataforma da Microsoft para conectar-se e administrar servidores SQL Server. Ao longo do tempo deverá substituir o Management Studio quando incorporar mais de suas capacidades.
  • Plugin para VS Code: Com esse plugin é possível acessar instâncias do SQL Server diretamente através do VS Code. Muito prático e conveniente.
  • mssql-cli: Ferramentas de linha de comando multiplataforma para acessar instâncias do SQL Server. Bastante rica em recursos e prática para ações rápidas.

Por fim, se precisar iniciar ou parar o serviço do docker use os comandos abaixo:

# Iniciar a instância
sudo docker start sql1

# Parar a instância
sudo docker stop sql1

Referências