Azure SQL Edge ya no es compatible con la plataforma ARM64 y dejará de estar disponible el 30 de septiembre de 2025.
La imagen mcr.microsoft.com/azure-sql-edge:latest es antigua (última actualización en julio de 2023). Su uso es exclusivamente para pruebas y aprendizaje. No se recomienda para entornos de prdoucción.
Primero, actualizamos los repositorios e instalamos los paquetes necesarios para usar el repositorio de Docker sobre HTTPS.
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Importamos la clave GPG oficial de Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Registramos el repositorio de Docker en nuestro sistema:
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Instalamos el motor de Docker y añadimos nuestro usuario actual al grupo 'docker' para eejcutar comandos sin sudo.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER && newgrp docker
Verificamos que Docker se ha instalado correctamente y que el servicio está activo.
docker --version
sudo systemctl status docker
Paso 2: Preparación del Contenedor de Base de Datos
Creamos un directorio en el anfitrión para persistir los datos de la base de datos y ajustamos los permisos para el usuario interno del contenedor.
mkdir ~/datos_sql
sudo chown -R 10001:0 ~/datos_sql
Descargamos la imagen oficial de Azure SQL Edge compatible con ARM64.
docker pull mcr.microsoft.com/azure-sql-edge:latest
Paso 3: Ejecución del Servidor SQL
Lanzamos el contenedor con las variables de entorno necesarias, el mapeo de puertos y el volumen de datos. La contraseña del administrador (SA) debe cumplir con políticas de complejidad.
docker run \
--name sql-server-rpi \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=MiPassword#1234" \
-e "MSSQL_PID=Developer" \
-p 1433:1433 \
-v ~/datos_sql:/var/opt/mssql \
--restart unless-stopped \
-d mcr.microsoft.com/azure-sql-edge:latest
Paso 4: Verificación del Estado
Comprobamos que el contenedor está en ejecución.
docker ps --filter name=sql-server-rpi
Revisamos los registros de actividad del contenedor para confirmar que el motor de base de datos ha finalizado su arranque.
docker logs sql-server-rpi
Debemos buscar un mensaje que indique que SQL Server está listo para conexiones.
Paso 5: Conexión a la Base de Datos
La imagen azure-sql-edge para ARM64 es ligera y no incluye herramientas de cliente como sqlcmd dentro del propio contenedor. Por lo tanto, la conexión debe realizarse desde fuera.
Solución: Conexión Externa y Ausencia de sqlcmd
Si intentamos ejecutar sqlcmd dentro del contenedor, obtendremos un error porque el binario no existe. Esto es un diseño intencionado para minimizar el tamaño de la imagen.
Método 1 (Recomendado): Instalar mssql-tools en el anfitrión (Raspberry Pi).
Podemos instalar el paquete de herramientas de cliente de SQL Server directamente en el sistema operativo del anfitrión para conectarnos.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list)"
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev -y
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Ahora podemos conectarnos desde la terminal de la Raspberry Pi:
sqlcmd -S localhost -U SA -P "MiPassword#1234" -C
Método 2: Usar una herramienta gráfica de gestión.
Conéctese desde cualquier cliente compatible (como Azure Data Studio, DBeaver o SQL Server Management Studio) utilizando la dirección IP de su Raspberry Pi, el puerto 1433, la autenticación de SQL Server, el usuario 'SA' y la contraseña configurada.