SQL Server 2017 en Linux vía Docker

SQL Server 2017 en Linux vía Docker

Desarrollar aplicaciones Web muchas veces requiere el tener que involucrarte con un conjunto de varias tecnologías. En mi particular caso, siendo un desarrollador Web formado en ambientes GNU/Linux, siempre había estado trabajando con con herramientas de Software Libre, principalmente por la facilidad de implementación y despliegue. Sin embargo, dejando al lado las preferencias y los gustos particulares en entornos y Sistemas Operativos, tuve la necesidad de trabajar con el motor de bases de datos SQL Server. Afortunadamente, Microsoft está apostando fuertemente por el Open Source (que no es lo mismo que Software Libre), poniendo sus tecnologías a la disposición de la enorme comunidad de desarrolladores.

En este caso, procederemos a instalar una instancia de SQL Server 2017 de un contenedor de Linux usando Docker, específicamente, en Fedora 30 Workstation. Mencionar, sin embargo, que también podemos instalarlo de manera ‘nativa’ en nuestro Sistema Operativo.

¿Qué es Docker?

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos. Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que “contenedores” independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.

¡A por ello!

Instalar Docker

Obviamente necesitamos tener instalado Docker, si no es así, lo instalamos, lo iniciamos y lo habilitamos de inicio

dnf -y install docker
sudo systemctl start docker.service
sudo systemctl enable docker.service

Descargar la Imagen del contenedor

Una vez instalado e iniciado Docker, procedemos a descargar la Imagen de SQL Server para Linux
docker pull mcr.microsoft.com/mssql/server

Ejecutamos la Instancia de SQL Server 2017

Ahora, instalaremos una Instancia de SQL Server 2017
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=MI_SUPER_CLAVE' -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest

De lo anterior, podemos ilustrar:

-e 'ACCEPT_EULA=Y' Se especifica la variable que aceptará la Licencia de uso de la imagen del contenedor de Sql Server, cuya aceptación es obligatoria.

-e 'SA_PASSWORD=MI_SUPER_CLAVE' Se especifica la variable de nuestra fuerte contrasena, mínuma de 8 caracteres y requerida para el Servidor SQL Server.

-p 1433:1433 Mapeo del Puerto TCP/IP del host (primer valor), con el del contenedor (segundo valor). En este caso, el Servidor escuche en el puerto 1433 en el contenedor y lo mapeammos al 1433 del host.

--name sqlserver Especificamos un nombre para evitar que se genere un nombre aleatorio no amigable. Si se usa más de un contenedor, el nombre debe ser único.

-d mcr.microsoft.com/mssql/server:2017-latest Es la imagen del contenedor SQL Server 2017 para Linux.

Listar contenedor

Podemos listar el contenedor con sudo docker ps -a, visualisando algo como:

Arrancar el contenedor

docker container start sqlserver

Conectar con el servidor

Podemos conectar al servidor vía el nombre del contenedor:

docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P MI_SUPER_CLAVE

O vía el ID del contenedor:
docker exec -it d6a4eb148b0b /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P MI_SUPER_CLAVE

 

Fuente: https://hub.docker.com/_/microsoft-mssql-server

Share this post

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *