Creando una base de datos Microsoft SQL Server con Docker sobre Linux

A continuación un breve resumen de como tener SQL Server corriendo sobre docker en tu servidor Linux.
Creamos un directorio para tener todo más ordenador: mkdir sqlserver && cd sqlserver
Crear fichero docker-compose.yml: vi docker-compose.yml
  version: '3.8'
  services:
    sql-server:
      # user: root #Si da problemas de permisos descomentar esta linea.
      image: mcr.microsoft.com/mssql/server
      container_name: sql-server-container
      environment:
        - ACCEPT_EULA=Y
        - SA_PASSWORD=passwordFuerte123!!
        - MSSQL_PID=Express
        - MSSQL_TCP_PORT=1433
        - MSSQL_UID=1000
      ports:
        - "1433:1433"
      networks:
        - sql-bridge-network
      restart: unless-stopped
      volumes:
        - ./mssql:/var/opt/mssql
        - ./backups:/var/backups
        # Volumen persistente para almacenar datos de las bases de datos
  
  networks:
    sql-bridge-network:
      driver: bridge
      # Puedes cambiar 'bridge' a otro tipo de red según tus necesidades
  
Correr y ver logs del contenedor
docker compose up -d && docker compose logs -f
Una vez funcionando podemos entrar a la base de datos con SSMS user SA y Password que hayas escogido.
Creamos un usuario y base de datos nueva con el siguiente fragmento de SQL
  --Crear base de datos
  CREATE DATABASE LTEMV;
  GO
  USE MINUEVADB;
  GO
  -- Crear un nuevo usuario y habilitar conexiones remotas  
  USE master;  
  CREATE LOGIN tuusuario WITH PASSWORD='passwordFuerte123!!';  
  -- Habilita el inicio de sesión del usuario
  ALTER LOGIN tuusuario ENABLE;  
  -- Crea un usuario asociado al inicio de sesión
  CREATE USER tuusuario FOR LOGIN tuusuario ;
  -- Agrega al usuario tuusuario al rol de propietario de la base de datos (db_owner).
  ALTER ROLE db_owner ADD MEMBER tuusuario ;
  -- Otorga al usuario tuusuario permisos para ver cualquier base de datos.
  GRANT VIEW ANY DATABASE TO tuusuario ;
Y con esto ya tendrías tu motor de base de datos Microsoft SQL Server corriendo como un contenedor Docker sobre tu Servidor Linux. Además habremos creado un usuario nuevo y una base de datos para empezar a trabajar sobre ella.
Espero que te haya sido de ayuda
Author
Algineer
First Version
Open in Mintter app