Cómo configurar el acceso externo a un servidor de base de datos MySQL/MariaDB de un contenedor Docker que ya hemos desplegado con Docker Compose. Como ejemplo, usaremos el contenedor Docker con MariaDB y Pandora FMS. Probamos el acceso remoto desde otro equipo de la red con MySQL Workbench.

Requisitos para configurar el acceso externo a MySQL/MariaDB a un contenedor Docker existente

Únicamente necesitaremos disponer de un equipo con Docker Compose y un contenedor Docker desplegado con MariaDB o MySQL. En el siguiente enlace desplegamos un contenedor con Pandora FMS y MariaDB:

En este tutorial, explicaremos cómo permitir el acceso externo (desde otros equipos de la red) a la base de datos MariaDB del contendor con Pandora FMS. El procedimiento será el mismo para cualquier otro sistema MySQL/MariaDB doquerizado.

Configurar fichero YML de Docker Compose para permitir acceso externo a MySQL/MariaDB

En primer lugar, comprobaremos que disponemos del fichero YML con el que desplegamos el contenedor con MySQL/MariaDB. En caso de no disponer de él, lo volveremos a crear (como indicamos en este tutorial).

Nos situaremos en la carpeta donde tengamos el fichero YML y comprobaremos que tenemos desplegadas las imágenes Docker de Pandora FMS y MySQL/MariaDB (en nuestro caso). Para ello, usaremos el comando:

Teniendo en cuenta que nuestro fichero YML se llama docker-compose.yml.

Nos devolverá las imágenes iniciadas con la base de datos y con el servidor web para Pandora FMS:

En el ejemplo vemos que en la imagen del servidor web sí se han redireccionado los puertos 443, 41121 y 80, pero no se ha redireccionado el puerto para la imagen de MySQL/MariaDB, que solo tiene el interno 3306.

Para habilitar el acceso externo a la base de datos MySQL/MariaDB del contenedor, editaremos el fichero docker-compose.yml y estableceremos el siguiente contenido (estableceremos el puerto 3333 para acceder de forma remota al MySQL/MariaDB del contenedor Docker):

En realidad, lo único que hemos modificado en el fichero es añadir las líneas:

Volver a desplegar las imágenes de la base de datos con acceso remoto y de Pandora FMS

Hay que tener en cuenta que si hemos establecido los volúmenes correspondientes (como en el ejemplo del fichero docker-compose.yml del tutorial anterior) este proceso no eliminará los datos que ya hubiera en las imágenes, los mantendrá.

Una vez modificado el fichero YML, volveremos a desplegar las imágenes, ejecutando el comando:

Comprobaremos que ahora sí hemos redireccionado el puerto 3306 interno de la imagen al 3333 externo:

Acceso remoto a MySQL/MariaDB de Docker mediante MySQL Workbench

Desde un cliente de MySQL/MariaDB, como por ejemplo MySQL Workbench, crearemos una nueva conexión, con los siguientes datos:

  • Hostname: indicaremos la IP del equipo Linux (o Windows) anfitrión de Docker, el que contiene Docker con las imágenes de la base de datos y Pandora FMS.
  • Port: en este caso, puesto que hemos definido el puerto 3333, lo indicaremos aquí.
  • Username: indicaremos el nombre de usuario de acceso a la base de datos. Por defecto, para el fichero YML de Pandora, hemos dejado «pandora».

Estableceremos la conexión y comprobaremos que, efectivamente, tenemos acceso remoto a la base de datos MySQL/MariaDB de nuestro contenedor Docker: