SQL Server 2016 en docker


Contenedores, que es eso y que es docker y para que me sirve en mi SQL Server? Bueno es un poco complejo y fuera del alcance pero resumido son maquinas virtuales mínimas y autocontenidas lo cual nos permite un despliegue rápido, un mejor uso de recursos de la máquina
Basandome en un documento publicado por Microsoft haremos el deploy de una maquina docker con sql server express.

Seguiremos los prerrequisitos, en mi caso lo he hecho sobre una versión de Windows 10 profesional, necesita que esta sea de un build 14942.1000 o superior.

Y instalar la versión de docker para esta.

Una vez instalada bajaremos la versión de SQL Server express, esta tendrá una contraseña de sa, asegurense de cumplir con los requisitos.

Para bajar la imagen de docker abrimos una linea de comando con permisos de administrador y asegurarnos de tener conexión a internet.


docker pull microsoft/mssql-server-2016-express-windows

Luego ejecutaremos la imagen de docker como un contenedor de hyper-v


docker run -d -p 1433:1433 --env sa_password=<YOUR_PWD> --isolation=hyperv microsoft/mssql-server-2016-express-windows

Para conectarnos puede ser por línea de comando con SQL Command

Con cuenta interna de administrador



docker exec -it <DOCKER_CONTAINER_ID> sqlcmd

Con cuenta sa


docker exec -it <DOCKER_CONTAINER_ID> sqlcmd -S. -Usa

Si es desde fuera del contenedor docker, por medio de SSMS debemos primero obtener la ip (el ejemplo de Microsoft tiene un carácter de más), recuerden usar el puerto sino cambiaron la configuracion en ningún punto sera 1433 que es el de defecto de SQL Server.


docker inspect -format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <DOCKER_CONTAINER_ID>

Para obtener el Docker id usaremos el comando (-a all, -q quiet)


docker ps -a -q

Ingresamos la información en SSMS y listo, podemos realizar la conexión.


Una vez hayamos terminado si queremos borrar los contenedores


docker stop <docker Id>
docker rm <docker Id>

Mas información

Windows Containers

Comentarios

Entradas más populares de este blog

Mover indices no clustered a un nuevo filegroup