Hola gente, hoy analicemos cómo podemos crear nuestra propia imagen personalizada de SQL Server además de la imagen oficial.
Esto puede ser realmente útil en múltiples escenarios, como cuando tenemos un nuevo miembro del equipo que se une a nuestro equipo. En lugar de darles una instancia nueva de SQL Server, podemos tener una imagen de la configuración inicial y ellos pueden extraerla y estar listos para trabajar en ella
Requisito previo
- Docker Desktop funcionando en la máquina. Se puede descargar desde aquí https://docs.docker.com/v17.09/docker-for-windows/install/
- Cuenta en Docker Hub para que podamos publicar y luego extraer nuestra imagen de ventana acoplable de Sql Server personalizada
- Ejecución de una instancia de un contenedor de SQL Server nuevo desde la imagen oficial disponible en docker hub mcr.microsoft.com/mssql/server:2017-latest.
docker run -e "ACCEPT_EULA=Y" "SA_PASSWORD=MYPASSWORD123" -p 1433:1433 --name MyContainerName -d mcr.microsoft.com/mssql/server:2017-latest
Configuración del servidor SQL 🔥
- Una vez que tengamos el servidor en funcionamiento, inicie sesión en SQL Server utilizando SQL Server Management Studio con la dirección IP del host
- El nombre de usuario sería SU y la contraseña es MYPASSWORD123 como se usa en el comando anterior para ejecutar el contenedor
- A continuación, podemos configurar nuestro servidor como la base de datos, tablas manualmente o usando cualquier archivo de copia de seguridad, etc.
- Ahora tenemos nuestra base de datos en su lugar y queremos crear una imagen de esta configuración para que la próxima vez que alguien extraiga la imagen ya no tenga que importar manualmente la base de datos
Crear una imagen acoplable personalizada
- Primero, detenga el contenedor en ejecución usando el comando
docker stop MyContainerName
- A continuación, insertamos nuestros cambios en el contenedor para que podamos crear una imagen de él
docker commit MyContainerName
- Luego copie la imagen de nuestro contenedor específico de la lista usando el comando
Docker images
- La imagen recién creada no tiene repositorio ni etiqueta. Ejecute el siguiente comando para etiquetar la imagen
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>
Por ejemplo:etiqueta docker a82e969d1395 rajatsrivas/ myownsql:sqlCustomImage
- Ahora nuestra imagen está construida y podemos crear un contenedor usando la imagen
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
- Si ha iniciado sesión en Docker Hub en Docker Desktop local, este paso se omitirá; de lo contrario, inicie sesión mediante el símbolo del sistema
docker login -username=rajatsrivas
- Ingrese la contraseña en la siguiente línea y, finalmente, envíe la imagen al repositorio del hub de Docker
docker push rajatsrivas/myownsql
- Vaya a https://hub.docker.com/
- Deberíamos tener la imagen que empujamos al centro de la ventana acoplable
Tira y ejecuta nuestra imagen personalizada 🏃♂️
- Extraiga la imagen a cualquier máquina usando el comando
docker pull rajatsrivas/myownsql:latest
- Ejecute el contenedor y acceda al servidor en SSMS. El servidor debe tener la base de datos que se importó y configuró en los pasos anteriores
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest
Conclusión
Ahí está, hemos implementado nuestra imagen personalizada sobre una imagen acoplable oficial disponible.
Este es un paso bastante pequeño en la incorporación, pero se pueden aprovechar implementaciones similares para configurar entornos de sandbox de manera muy rápida y eficiente.
Espero que esto haya sido útil. Sigue aprendiendo, sigue construyendo