articulo

Docker + SQL Server y una base de datos

Después de preparar el docker con mssql server en una M1 y topar con que la arquitectura no era aplicable para la M1. Se tomo la destreza de actualizar un portatil que tenía fedora a la versión 35 para instalar el .netcore y ejecutar el mssql.

Pero se tuvo el detalle que falta una librería una llamada libldap, por lo que se tomó la acción de ejecutar un contenedor en docker con mssql se siguieron estas instrucciones para instalar la versión 2022 en el docker.

Interactuando con MSSQL

  1. No hay que olvidar levantar el servicio de docker se puede usar el siguiente comando para levantar el servicio: docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest
  2. Ejecutar el siguiente comando: docker exec -it sql1 "bash". Hay que tener muy presente que sql1 es el nombre del contenedor que se creo.
  3. El siguiente código permitirá interactuar con sqlcmd: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Contrasnia12-"

después de ejecutar la segunda línea de comando se notará que cambia el promt de la terminal. Ahora es solo crear una base de datos, una tabla e insertar dos registros para ello se hará uso de los siguientes comando en el orden en que se colocan

Crear Base de datos, Tabla e Insertar datos

Código para crear la base de datos y mostrar todas las bases de datos creadas en el servidor.

Create database TestDB;
Select Name from sys.databases;
go

Código para seleccionar la base de datos y crear una tabla llamada inventario con tres campos, id de tipo entero, name de tipo nvarchar de 50 y cantidad de tipo entero, con la instrucción go se le indica al interprete que ejecute las instrucciones anteriores.

Use TestDB;
Create table inventario (id INT, name NVARCHAR(50), cantidad INT);
go

Código para insertar dos valores en la tabla inventario.

Insert into inventario values (1,'banana',150);
Insert into inventario values (1,'peras',200);
go

El siguiente código permite mostrar lo que hay en la tabla inventario.

Select * from inventario;
go
Imagen 1. Ejecución de los comandos de MSSQL Server en la terminal de fedora 35 dentro del contenedor. Fuente: tumblr.com

Para salir del entorno de mssql solo hay que ejecutar el comando quit y con ello habrá terminado la sesión de mssql. Ahora para salir del contenedor debe de ejecutar el comando sudo docker stop sql1. No se debe de olvidar que sql1 es el nombre del contenedor donde se encuentra mssql. En caso de que requiera eliminar el contenedor ejecute el comando: sudo docker rm sql1. Claro es que debe de estar detenido(fuera de linea) previamente el contenedor para poderlo eliminar.

Y hasta aquí la interacción con la base de datos de Microsoft. Al parecer todo va mejor desde el contenedor docker.

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *