Ejecutar SQL Server en Docker en Apple M1

Hace ya algún tiempo te conté cómo podías usar SQL Server en Mac gracias a Docker. Sin embargo, hace poco llegó mi nuevo MacBook Pro a casa y cuando necesité generar un nuevo contenedor con esta base de datos:

# Create local database on Docker
docker run \
-e 'ACCEPT_EULA=Y' \
-e 'SA_PASSWORD=Password1!' \
-e 'MSSQL_PID=Express' \
--name sqlserver \
-p 1433:1433 -d mcr.microsoft.com/mssql/server:latest

Me encontré con lo siguiente:

La imagen de SQL Server da un warning y no arranca en M1

De hecho, si accedes a la interfaz de Docker Desktop verás un mensaje como este:

Docker Desktop muestra el contenedor parado y con el warning

Por ahora lo que podemos hacer es uso de esta otra imagen, Azure SQL Edge, que es una versión optimizada para entornos IoT. Para usarla, he ejecutado lo siguientes parámetros.

#Create a network
docker network create sqlserver-vnet

#Create a container with Azure SQL Edge
docker run \
--name azuresqledge \
--network sqlserver-vnet \
--cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' \
-e 'MSSQL_SA_PASSWORD=Password1!' \
 -v mssqlserver_volume:/var/opt/mssql \
-p 1433:1433 \
-d mcr.microsoft.com/azure-sql-edge

#Create a database
docker run -it --network sqlserver-vnet mcr.microsoft.com/mssql-tools
sqlcmd -S azuresqledge -U SA -P 'Password1!' -Q 'CREATE DATABASE [heroes]'

Como esta imagen no trae consigo la herramienta sqlcmd, como si ocurre en la anterior, me he creado una red donde he incluido mi servidor con Azure SQL Edge, y luego he añadido, dentro de la misma red, otro contenedor con la imagen mssql-tools, al que me atacho nada más crearlo, y ejecuto los comandos que crea oportunos, en este caso crear una base de datos llamada heroes. Si bien este segundo contenedor también da el mismo warning, si que es capaz de ejecutarse y nos permite lanzar los comandos.

Espero que sea de utilidad.

¡Saludos!

logo lemoncode

 

 

Bootcamp DevOps

Si tienes ganas de meterte en el área de DevOps, formo parte del
equipo de docentes del Bootcamp DevOps Lemoncode, ¿Te animas a
aprender con nosotros?

Más Info