GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo ejecutar MySQL en Docker Container:una guía simple y fácil de seguir

Esta guía explica paso a paso cómo configurar un nuevo servidor MySQL que se ejecute en un contenedor Docker en solo unos minutos.

Una de las mejores cosas sobre Docker es que puede usarlo rápidamente para probar aplicaciones sin instalarlo directamente en su máquina. Por ejemplo, puede usar Docker para ejecutar una base de datos en un contenedor como un servidor remoto y probar cómo interactúa su aplicación con él.

Ejecutar MySQL con contenedores Docker es un mecanismo ampliamente utilizado. MySQL es una de las bases de datos más populares utilizadas con contenedores Docker.

Para crear MySQL como un contenedor de Docker, la máquina host debe tener instalado Docker. Si no lo tiene instalado, aquí tiene una guía paso a paso para instalar Docker en Ubuntu.

1. Extraiga la imagen de MySQL Docker

Lo primero que debe hacer para crear y probar el servidor MySQL en Docker es extraer una imagen oficial de MySQL del Docker Hub.

Puede descargar una versión específica como 8.0, 5.7, 5.6 u optar por la última versión como se ve en el siguiente comando:

sudo docker pull mysql:latest

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

Puede ejecutar las docker images Comando para ver una lista de imágenes de Docker que ha extraído de Docker Hub.

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

Como puede ver, la imagen de MySQL ahora está disponible para nuestro Docker instalado localmente.

2. Configuración de un volumen Docker

Como sabe, los contenedores de Docker son, en principio, temporales y se espera que cualquier dato o configuración se pierda si se elimina el contenedor.

Sin embargo, los volúmenes de Docker proporcionan un mecanismo para conservar los datos creados dentro de un contenedor de Docker. Por lo tanto, son el mecanismo preferido de Docker para almacenar datos persistentes de contenedores Docker.

MySQL almacena sus archivos de datos en /var/lib/mysql directorio. Entonces, antes de implementar, deberá configurar un volumen de Docker para conservar su base de datos. De lo contrario, sus datos se perderán cuando se reinicie el contenedor.

Creemos un nuevo volumen y asígnele el nombre mysql-data . Se utilizará para almacenar toda la información de su base de datos.

sudo docker volume create mysql-data

Puede enumerar todos los volúmenes conocidos por Docker emitiendo el siguiente comando:

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

Como puede ver, nuestro volumen Docker recién creado llamado mysql-data está aquí y listo para servir datos. Luego se puede adjuntar a un contenedor MySQL recién creado.

3. Ejecute un contenedor MySQL Docker

Ahora que tiene una imagen de MySQL Docker en su máquina y un volumen para conservar los datos, puede implementar un contenedor. También debe establecer una contraseña para el usuario root de MySQL usando MYSQL_ROOT_PASSWORD variable de entorno.

Ahora, ejecutemos el contenedor:

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

Eso es todo. Esto iniciará la última versión de la instancia de MySQL, a la que se puede acceder de forma remota desde cualquier lugar con la contraseña raíz especificada.

Para hacer las cosas más transparentes, analicemos esta sintaxis. Primero, esto es lo que significa cada parámetro en ese comando:

  • -d ejecutará este contenedor en un modo separado para que se ejecute en segundo plano.
  • --name asigna el nombre mysql-server a su instancia de contenedor. Si no especifica esto, Docker generará un nombre aleatorio.
  • -p vinculará el puerto del contenedor MySQL 3306 al mismo puerto en su máquina host. Podrá conectarse a 127.0.0.1 en el puerto 3306 utilizando clientes MySQL (mysql ) ejecutándose en su host.
  • -v opción vincular esa carpeta de datos dentro del volumen del contenedor (/var/lib/mysql ) al volumen Docker local (mysql-data ) que creó en el paso anterior.
  • -e establece una variable de entorno. En este caso, la contraseña raíz de MySQL.
  • mysql es el nombre de la imagen que usamos para crear el contenedor.

Puede verificar si el contenedor se está ejecutando enumerando los contenedores en ejecución:

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4. Conexión al contenedor de MySQL

Puede obtener un shell de MySQL interactivo adjuntándolo al contenedor y ejecutando mysql dominio. Esto proporciona la interfaz de línea de comandos completa de MySQL para usar todos los comandos y banderas familiares.

sudo docker exec -it mysql-server mysql -u root -p

También puede conectarse con la instancia de MySQL Docker usando mysql cliente si lo tiene preinstalado en su host.

Tenga en cuenta que, de forma predeterminada, el cliente mysql intenta conectarse mediante un socket UNIX cuando le indica que se conecte a localhost . Así que usa 127.0.0.1 y no localhost .

mysql -u root -h 127.0.0.1 -p

Por supuesto, también puede usar un cliente basado en GUI como MySQL Workbench para conectarse a la base de datos. Por ejemplo, en su MySQL Workbench para "Nombre de host", especifique la dirección IP de la máquina en la que inició Docker Container.

Por supuesto, en los ejemplos que se muestran arriba para un nombre de host, puede usar la dirección IP de la máquina en la que funciona el contenedor acoplable MySQL en lugar de 127.0.0.1.

Puede encontrar esta dirección ejecutando ifconfig comando sin argumentos.

El uso de la dirección IP de la máquina le permite acceder al servidor MySQL de forma remota.

5. Detener, iniciar y reiniciar el contenedor de MySQL

Este comando detendrá temporalmente el contenedor MySQL en ejecución (y se puede reanudar/reiniciar más tarde):

sudo docker stop mysql-server

Para empezar el contenedor de MySQL, ejecuta:

sudo docker start mysql-server

El siguiente comando se usa para reiniciar el contenedor MySQL en ejecución:

sudo docker restart mysql-server

Conclusión

Como puede ver, ejecutar MySQL dentro de Docker es mucho más rápido y fácil que instalar MySQL Server localmente. Sin embargo, hay muchas más cosas a considerar si va a utilizar MySQL en Docker para algo más allá de las pruebas.

Puede consultar la página de MySQL en Docker Hub y el manual oficial de MySQL sobre el tema para obtener más información.

Déjame saber si tienes alguna pregunta o sugerencia. Estaré encantado de hacer un seguimiento contigo.


Docker
  1. Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

  2. Cómo instalar WordPress con Docker, una guía fácil de seguir

  3. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  4. Cómo ejecutar MySQL en un contenedor Docker

  5. Cómo ejecutar un comando en un contenedor Docker en ejecución

Cómo usar SSH en un contenedor Docker y ejecutar comandos

Cómo ejecutar NGINX Inside Docker (para fácil escalado automático)

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo crear volúmenes Docker en Windows de forma fácil

Cómo ejecutar contenedores Docker