Cómo instalar SQL Server en Docker
Como quizás ya sepas, SQL Server se puede instalar en distribuciones de Linux, una de ellas es un Contenedor de Docker, para seguir este pequeño tutorial (si estás usando un sistema Windows) deberías tener instalado WSL2 (Windows Subsystem for Linux 2), acá tenés algo para empezar.
Empecemos Instalando Docker

Instalando Docker
Andá a este LINK. Descargá el Docker que prefieras

Estoy usando una Mac, ¿qué debería hacer ahora?
Antes que nada, descargá Docker.dmg, abrí una Terminal en la ubicación del Docker.dmg (si tu Mac tiene un chip intel hacé clic ACÁ y si tiene un chip apple hacé clic ACÁ) y escribí los siguientes comandos:
# Con este comando adjuntás el archivo de Docker a la Mac
sudo hdiutil attach Docker.dmg
# Ahora deberías instalarlo
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
# Por último, desmontá el volumen
sudo hdiutil detach /Volumes/Docker
Y eso es todo, fácil ¿no? Ahora deberías tener docker instalado en tu Mac.
Usando Windows, esto es lo que deberías hacer
Podés empezar descargando Docker Desktop Install.exe y ejecutarlo, si ya instalaste WSL2 como te dije antes, el proceso de instalación es muy directo, no deberías tener ningún problema acá.
¿Y qué pasa con Linux? ¿Qué debería hacer ahora?
Bueno, esto va a depender de la distro de Linux, Docker soporta instalaciones en Ubuntu, Debian, Fedora y Arch (actualmente experimental), y viene con un paquete para cada una de ellas.

modprobe kvm
#Si tenés un chip intel
modprobe kvm_intel
#Si no, si tenés un chip AMD
modprobe kvm_amd
sudo usermod -aG kvm $USER #Agregá tu USER al grupo kvm para acceder al dispositivo kvm
Si todavía tenés problemas corriendo Docker después de esto, deberías leer la Documentación Oficial de Docker sobre instalación en Linux para hacer algo de troubleshooting.
Ya hiciste todo esto, tenés Docker corriendo, ¡ahora instalemos Microsoft SQL Server en un Contenedor de Docker!
Por suerte para nosotros, Microsoft ya se encargó de todo y armó distintas imágenes para SQL Server.
En Windows abrí un Powershell y corré el siguiente código:
docker pull mcr.microsoft.com/mssql/server:2022-latest
Si no, en Linux o Mac, más o menos lo mismo pero con sudo adelante:
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
En caso de que quieras usar otras versiones de SQL Server corré una de las siguientes en su lugar:
docker pull mcr.microsoft.com/mssql/server:2019-latest # SQL Server 2019
docker pull mcr.microsoft.com/mssql/server:2017-latest # SQL Server 2017
¡Listo! Ya tenemos una Imagen de SQL Server instalándose en nuestro Contenedor de Docker, si vas a tus imágenes de docker la deberías ver.

Configurando nuestra instalación de SQL Server
Ahora que tenemos nuestra instalación de SQL Server, Microsoft nos pide correrla aceptando el EULA primero, así que deberíamos correr este comando:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=[poné acá tu nueva contraseña]" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest # Tené en cuenta que esto es solo para server:2022-latest, en caso de que instales otra versión de SQL Server, deberías cambiar la última parte de esta línea
Si todo sale bien te va a dar una línea de hash y en tus Imágenes de docker vas a ver una etiqueta “IN USE” en tu imagen de MCR.


Conectándonos a nuestro contenedor de Docker
Ya tenemos nuestro Contenedor de Docker con SQL Server levantado y funcionando, una forma de conectarse para correr comandos SQL es a través de sqlcmd dentro del contenedor, para conectarte usá los siguientes comandos:
PS> docker ps -a # Vamos a usar este comando para averiguar el nombre de nuestro contenedor
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
463f5132aa17 mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm…" 12 minutes ago Up 12 minutes 0.0.0.0:1433->1433/tcp vigorous_rosalind
1c16dedd96f6 recordviewer_nginx "/docker-entrypoint.…" 2 months ago Exited (255) 44 minutes ago 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp recordviewer_nginx_1
69740c6d6ef1 recordviewer_web "bash -c 'node app.j…" 2 months ago Exited (255) 44 minutes ago recordviewer_web_1
PS> docker exec -it vigorous_rosalind "bash" # En mi caso el Contenedor se llamaba vigorous_rosalind así que corramos bash en él
# si todo sale bien, ahora estás dentro del contenedor de SQL
mssql@463f5132aa17:/$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "[PONÉ ACÁ TU CONTRASEÑA]"
1> CREATE DAtABASE TestDB;
2> SELECT Name from sys.databases;
3> GO
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
TestDB
1> QUIT
mssql@463f5132aa17:/$ exit
Perfecto, pudimos correr un comando dentro de nuestro SQL Server, todo está funcionando bien.
Conectate usando SQL Server Management Studio (SSMS)
Si estás en Windows y seguiste nuestro tutorial acá ya tenés SSMS instalado en tu PC, en caso de que estés en Linux o Mac considerá usar Azure Data Studio que viene con herramientas para administrar un servidor SQL corriendo en Linux
En SSMS, deberíamos ir a File > Connect Object Explorer…

En Authentication > seleccioná SQL Server Authentication
En Server Name > [Dirección IP (si estás usando la misma máquina, sería 127.0.0.1], [PUERTO (si seguís este tutorial paso a paso, sería 1433, lo podés cambiar cuando corras tu Contenedor de Docker)] (en mi caso: 127.0.0.1,1433)
Login: User (SA) por defecto, para agregar nuevos usuarios vamos a hacer otro tutorial, por ahora empecemos con esto.
Password: la contraseña que definiste cuando creaste tu Contenedor de Docker


Conclusión
Instalamos docker, clonamos una Imagen de un SQL Server, la Dockerizamos y nos conectamos a ella. Podrías usar esto para armar un entorno de staging o para armar un entorno de pruebas.
¡Ahora podés Dockerizar tus SQL Servers! ¡Espero que este tutorial te haya sido útil!