Resumen:

en este blog explicare un poco acerca del uso de Docker con Mysql, la configuración y utlización.

Detalles:

MySQL es un conocido sistema de gestión de bases de datos relacionales de código abierto y una de las soluciones de servidor web más populares. Almacena y estructura los datos de manera significativa, lo que garantiza una fácil accesibilidad.

Docker es un conjunto de productos de plataforma como servicio que admiten el desarrollo de CI/CD. Permite a los usuarios desarrollar e implementar aplicaciones dentro de entornos virtuales, llamados contenedores. Con una sola imagen, Docker puede iniciar una aplicación con todas sus bibliotecas y dependencias.

 

requisitos previos

  • Acceso a una línea de comando/ventana de terminal en linux.
  • Una cuenta de usuario con privilegios sudo o acceso a la cuenta raíz.
  • Una instalación de Docker existente.

Ejecución de un contenedor MySQL Docker

Si necesita configurar una base de datos rápidamente y sin utilizar demasiados recursos, implementar MySQL en un contenedor es una solución rápida y eficiente. Esto solo es apropiado para aplicaciones pequeñas y medianas. Las aplicaciones de nivel empresarial no encontrarían un contenedor MySQL Docker suficiente para su carga de trabajo.

El uso del software Docker para configurar su base de datos se está volviendo cada vez más popular para las aplicaciones a pequeña escala. En lugar de tener un servidor separado para el alojamiento de la base de datos, puede implementar un contenedor de base de datos MySQL.

Múltiples contenedores pueden ejecutarse en su computadora. Los contenedores comparten el mismo kernel y bibliotecas del host mientras empaquetan la aplicación o el software implementado en unidades individuales. Esto hace que la base de datos sea extraordinariamente ligera y rápida de poner en marcha.

Instalación de un contenedor MySQL Docker

Configurar una base de datos en Docker es simplemente construir un contenedor basado en una imagen MySQL. Siga los pasos que se describen a continuación para poner en funcionamiento su contenedor MySQL.

Paso 1: extraiga la imagen de MySQL Docker

1. Comience extrayendo la imagen de Docker adecuada para MySQL. Puede descargar una versión específica u optar por la última versión como se ve en el siguiente comando:

          sudo docker pull mysql/mysql-server:latest

Si desea una versión particular de MySQL, reemplace la última con el número de versión.

Pull MySQL Docker image for MySQL Docker container.

2. Verifique que la imagen ahora esté almacenada localmente

docker ps -a 
sudo docker images

Checking whether MySQL Docker image is part of local repository.

Paso 2: implementar el contenedor MySQL

1. Una vez que tenga la imagen, continúe con la implementación de un nuevo contenedor MySQL con:

sudo docker run --name=[container_name] -d [image_tag_name]

 

  • Reemplace [container_name] con el nombre de su elección. Si no proporciona un nombre, Docker genera uno aleatorio.
  • La opción -d indica a Docker que ejecute el contenedor como un servicio en segundo plano.
  • Reemplace [image_tag_name] con el nombre de la imagen descargada en el Paso 1.

En este ejemplo, creamos un contenedor llamado mysql_docker con la última etiqueta de versión:

sudo docker run --name=[container_name] -d mysql/mysql-server:latest

2. Luego, verifique si el contenedor MySQL se está ejecutando:

 docker ps

Debería ver el contenedor recién creado en la lista de resultados. Incluye detalles del contenedor, uno de los cuales es el estado de este entorno virtual. El estado cambia de salud: comenzando a saludable, una vez que se completa la configuración.

A command for running a MySQL container and checking the container state.

 

Paso 3: Conéctese al contenedor MySQL Docker

1. Antes de poder conectar el contenedor del servidor MySQL con el host, debe asegurarse de que el paquete del cliente MySQL esté instalado:

apt-get install mysql-client

2. Luego, abra el archivo de registros del contenedor de MySQL para encontrar la contraseña raíz generada:

sudo docker logs [container_name]

Para el contenedor mysql_docker, ejecutamos:

sudo docker logs mysql_docker

3. Desplácese por el resultado y busque la línea [Entrypoint] CONTRASEÑA DE RAÍZ GENERADA: , copie y pegue la contraseña en un bloc de notas o editor de texto para poder usarla más tarde.

Find generated root password for MySQL Docker container.

4. A continuación, vaya al shell bash del contenedor MySQL escribiendo:

sudo docker exec -it [container_name] bash

Para el contenedor creado como ejemplo, ejecutamos:

sudo docker -it mysql_docker bash

3. Proporcione la contraseña raíz que copió del archivo de registros, cuando se le solicite. Con eso, ha conectado el cliente MySQL al servidor.

A command for connecting to a MySQL Docker container.

4. Finalmente, cambie la contraseña raíz del servidor para proteger su información:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[newpassword]';

Reemplace [nueva contraseña] con una contraseña segura de su elección.

ChangeMySQL root password for MySQL container.

Configurar contenedor MySQL

Cuando instala un contenedor MySQL, encontrará sus opciones de configuración en el directorio /etc/mysql/my.cnf=.

Si necesita modificar la configuración, cree un archivo de configuración alternativo en la máquina host y móntelo dentro del contenedor.

1. Primero, cree un nuevo directorio en la máquina host:

sudo mkdir -p /root/docker/[container_name]/conf.d

2. Cree un archivo de configuración de MySQL personalizado dentro de ese directorio:

sudo nano /root/docker/[container_name]/conf.d/my-custom.cnf

3. Una vez en el archivo, puede agregar líneas con la configuración deseada.

Por ejemplo, si desea aumentar la cantidad máxima de conexiones a 250 (en lugar de las 151 predeterminadas), agregue las siguientes líneas al archivo de configuración:

[mysqld]
max_connections=250
File changing the configuration of a MySQL container by expanding the maximum number of connections.

4. Guarde y salga del archivo.

5. Para que se realicen los cambios, debe eliminar y volver a ejecutar el contenedor MySQL. Esta vez, el contenedor utiliza una combinación de opciones de configuración del archivo recién creado y los archivos de configuración predeterminados.

Para hacer esto, ejecute el contenedor y asigne la ruta del volumen con el comando:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=[my_password]" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
mysql

6. Para verificar si el contenedor cargó la configuración desde el host, ejecute el siguiente comando:

mysql -uroot -pmypassword -h127.0.0.1 -P6603 -e 'show global variables like "max_connections"';

Debería ver que el número máximo de conexiones ahora es 250.

Administrar almacenamiento de datos

De forma predeterminada, Docker almacena datos en su volumen interno.

Para verificar la ubicación de los volúmenes, use el comando:

sudo docker inspect [container_name]

Verá /var/lib/mysql montado en el volumen interno.

List details of MySQL Docker container and data storage location.

También puede cambiar la ubicación del directorio de datos y crear uno en el host. Tener un volumen fuera del contenedor permite que otras aplicaciones y herramientas accedan a los volúmenes cuando sea necesario.

1. Primero, busque un volumen apropiado en el host y cree un directorio de datos en él:

sudo mkdir -p /storage/docker/mysql-data

2. Ahora inicie el contenedor nuevamente, montando el directorio creado anteriormente:

docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=my_password" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
--volume=/storage/docker/mysql-data:/var/lib/mysql \
mysql

Si inspecciona el contenedor, debería ver que el contenedor MySQL ahora almacena sus datos en el sistema host. Ejecute el comando:

sudo docker inspect [container_name]

Iniciar, detener y reiniciar el contenedor de MySQL

El contenedor se detiene automáticamente cuando se detiene el proceso que se ejecuta en él.

Para iniciar la ejecución del contenedor MySQL:

sudo docker start [container_name]

Detenga el contenedor MySQL, use el comando:

sudo docker stop [container_name]

Para reiniciar la ejecución del contenedor MySQL:

sudo docker restart [container_name]

Eliminar contenedor MySQL

Antes de eliminar un contenedor de MySQL, asegúrese de detenerlo primero.

sudo docker rm [container_name]

example of stopping and deleting a MySQL container

 

Conclusión

Después de leer este artículo, debería haber implementado con éxito un contenedor MySQL.

La combinación de Docker y MySQL puede ser una excelente solución para una aplicación a pequeña escala. Ahora puede comenzar a explorar todas las posibilidades de un contenedor MySQL.

espero les haya sido de ayuda.

saludos Devs.   🙂

 

 

 

 


0 comentarios

Deja una respuesta

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