Práctica 11. Creación de un contenedor Docker con SQL Server Express

Apuntes de BD para DAW, DAM y ASIR

José Juan Sánchez Hernández

Curso 2023/2024

1 Creación de un contenedor Docker con SQL Server Express

1.1 ¿Qué es SQL Server?

SQL Server es un sistema de gestión de bases de datos relacionales desarrollado por la empresa Microsoft.

Actualmente existen diferentes versiones para una infraestructura On-Premise.

También existe una solución para infraestructura Cloud.

1.2 Requisitos

Para poder ejecutar contenedores Docker es necesario tener instalado Docker Community Edition (CE) en nuestro equipo.

En la web oficial encontrará la información necesaria para realizar la instalación de Docker CE sobre Windows, macOS, Ubuntu, Debian, Fedora y CentOS.

NOTA: Para crear un contenedor Docker con SQL Server 2019 Express es necesario que la máquina donde se va a ejecutar tenga al menos 2GB de memoria RAM disponibles.

1.3 Cómo crear un contenedor SQL Server 2019 Express sin persistencia de datos

Un contenedor Docker que no tiene persistencia de datos quiere decir que cuando finalice la ejecución perderá todo el contenido que hayamos creado durante la ejecución. Es decir, si durante la ejecución del contenedor hemos creado varias bases de datos en SQL Server Express, éstas se perderán cuando el contenedor se detenga.

El comando que podríamos usar para lanzar nuestro contenedor Docker con SQL Server 2019 Express sin persistencia de datos podría ser el siguiente:

docker run -d --rm --name sql_server_2019 -e ACCEPT_EULA=Y -e SA_PASSWORD='yourStrong(!)Password123' -e MSSQL_PID='Express' -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest

1.4 Cómo comprobar que el contenedor está en ejecución

Una vez que hemos iniciado el contenedor podemos comprobar que se está ejecutando con el siguiente comando:

docker ps

Deberíamos obtener una salida similar a esta.

CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
c370b426a379        microsoft/mssql-server-linux:latest   "/opt/mssql/bin/sqls…"   3 seconds ago       Up 1 second         0.0.0.0:1433->1433/tcp   sql_server_2019

1.5 Cómo conectarnos al contenedor desde la línea de comandos con la utilidad sqlcmd

Una vez que hemos creado la instancia del contenedor que está ejecutando SQL Server 2019 Express, podemos conectarnos a él para utilizar la herramienta sqlcmd.

Para conectarnos al contenedor en primer lugar tenemos que conocer cuál es su ID. Para obtenerlo podemos hacer uso del comando docker ps.

docker ps

CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
c370b426a379        microsoft/mssql-server-linux:latest   "/opt/mssql/bin/sqls…"   3 seconds ago       Up 1 second         0.0.0.0:1433->1433/tcp   sql_server_2019

En la primera columna podemos ver cuál es el CONTAINER ID. Una vez localizado el identificador ejecutamos el siguiente comando para conectarnos a él con la herramienta sqlcmd.

docker exec -it <container_id|container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P yourStrong(!)Password123

Ejemplo:

docker exec -it c370b426a379 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P yourStrong(!)Password123

Donde:

1.6 Cómo detener el contenedor

Para detener el contenedor en primer lugar tenemos que conocer cuál es su ID. Para obtenerlo podemos hacer uso del comando docker ps.

docker ps

CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
c370b426a379        microsoft/mssql-server-linux:latest   "/opt/mssql/bin/sqls…"   3 seconds ago       Up 1 second         0.0.0.0:1433->1433/tcp   sql_server_2019

En la primera columna podemos ver cuál es el CONTAINER ID. Una vez localizado el identificador ejecutamos el comando docker stop y le pasamos como parámetro el identificador del contenedor que queremos detener.

Para el caso anterior deberíamos ejecutar:

docker stop c370b426a379

1.7 Herramientas recomendadas para trabajar con SQL Server

A continuación se muestran algunas de las herramientas que Microsoft ha desarrollado para trabajar con SQL Server. Puede encontrar un listado más completo de herramientas en la web oficial.

Herramientas con interfaz de usuario (GUI)

Herramientas para la línea de comandos

Herramientas para realizar migraciones y otras tareas

1.8 ¿Qué es Azure Data Studio?

Azure Data Studio es una herramienta multiplataforma para trabajar con bases de datos que usan plataformas de datos locales y en la nube. Está disponible para Windows, macOS y Linux.

Más información en la documentación oficial.

1.9 Descargar e instalar Azure Data Studio

Más información en la documentación oficial.

1.10 Configurar Azure Data Studio para conectar con SQL Server

A continuación se muestra un ejemplo de cómo sería la configuración de Azure Data Studio para poder conectar con la instancia de SQL Server que se está ejecutando en nuestra máquina.

1.11 Referencias

2 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Bases de Datos de José Juan Sánchez Hernández y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.