Búsqueda de sitios web

Crear un contenedor Docker MySQL


Una de las características más importantes de Docker Containerization es que crea un entorno limitado para ejecutar la aplicación con todas las dependencias y paquetes necesarios instalados. La mayoría de las aplicaciones requieren una base de datos backend para almacenar puntos de datos. Oracle proporciona Docker Images para ejecutar MySQL dentro de contenedores y, por lo tanto, se convierte en una excelente opción para probar sus aplicaciones de bases de datos. Proporciona instancias ligeras de imágenes MySQL con funciones de limpieza una vez que se completan las pruebas.

Docker le permite descargar la imagen que contiene los binarios y las dependencias de MySQL y crea un sistema de archivos virtual. Tenga en cuenta que si inicia un contenedor Docker con el indicador −−rm, después de detener el contenedor, todo el sistema de archivos junto con la instancia del contenedor se elimina y, por lo tanto, combinar este indicador con el comando ejecutar le brindará una función de limpieza automática para probar su aplicaciones.

En este artículo, veremos cómo crear contenedores Docker MySQL para probar su aplicación.

Creando el contenedor Docker para MySQL

El siguiente comando crea una instancia para la imagen MySQL con la última versión y, junto con ella, el indicador −−rm ayuda a eliminar el contenedor junto con el sistema de archivos una vez que se detiene el contenedor.

sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server

En el comando anterior, el indicador −−rm le indica al demonio Docker que elimine el sistema de archivos del contenedor después de que se detenga. El indicador −−name proporciona el nombre del contenedor. El “-e MYSQL_ALLOW_EMPTY_PASSWORD=yes” le indica al contenedor que cree una contraseña de root vacía.

Ejecutando el contenedor Docker de MySQL

Los programas cliente MySQL utilizan conexiones de socket local, es decir, se conectan a través del host local. Para crear una conexión MySQL local, puede utilizar el siguiente comando.

sudo docker exec −it mysql−test mysql −uroot

La instrucción exec le dice al demonio Docker que ejecute el comando especificado dentro del contenedor Docker. El indicador −it le indica a Docker que abra el contenedor en un shell interactivo. El comando de shell que se ejecuta dentro del contenedor Docker es “mysql −uroot”.

Acceso de cliente mediante TCP/IP

Después de ejecutar los comandos de los pasos anteriores, Docker asigna una dirección IP privada a los contenedores Docker. También crea una interfaz de red en su sistema. Estos se pueden utilizar como puntos finales para crear una conexión TCP/IP al servicio.

No puede acceder al servicio MySQL a menos que cree una conexión TCP/IP entre los dos puntos finales. Para hacerlo, necesita averiguar las direcciones IP de la interfaz de red virtual en su sistema y la instancia del contenedor Docker. Puede hacerlo utilizando los siguientes comandos.

Para encontrar la dirección IP de la interfaz de red en su sistema, ejecute:

ip addr show docker0

La dirección IP que obtiene usando el comando anterior se convierte en uno de los puntos finales a los que se conectará su aplicación cliente y la usará para crear usuarios para su MySQL.

Para averiguar el otro punto final, que es la dirección IP de su instancia de contenedor Docker para MySQL, puede usar este comando:

sudo docker mysql−test

Usando estas dos direcciones IP, ahora puede avanzar y crear su conexión TCP/IP y crear un usuario para ejecutar su aplicación cliente.

Para convertir su sistema local en usuario root sin contraseña, puede utilizar estos comandos.

Dentro de la terminal de su sistema, ejecute mysql-test Docker Container para acceder al shell mysql.

sudo docker exec −it mysql−test mysql −uroot

Una vez que tenga acceso al shell mysql, dentro de él ejecute este comando para crear su sistema local como usuario root.

create user root@<virtual network interface IP> identified by '';

Tenga en cuenta que la dirección IP utilizada en el comando anterior debe ser la de la interfaz de red virtual en su máquina local que encontramos en los pasos anteriores.

Para otorgar todo el acceso al usuario creado anteriormente, use este comando.

grant all on *.* to root@<virtual network interface IP> with grant option;

Para realizar una limpieza automática después de haber realizado todas las pruebas, simplemente puede detener el contenedor y eliminarlo usando los comandos stop y rm.

Para concluir, en este artículo, analizamos cómo crear e iniciar un contenedor Docker MySQL y acceder a él creando una conexión TCP/IP entre la interfaz de red virtual de su máquina Linux y el contenedor Docker. Creamos el usuario root y le otorgamos todo el acceso.