Introducción
phpMyAdmin es una herramienta de software gratuita escrita en PHP, destinada a gestionar la administración de MySQL en la Web. phpMyAdmin admite una amplia gama de operaciones en MySQL y MariaDB. Las operaciones de uso frecuente (gestión de bases de datos, tablas, columnas, relaciones, índices, usuarios, permisos, etc.) se pueden realizar a través de la interfaz de usuario, sin dejar de tener la capacidad de ejecutar directamente cualquier declaración SQL.
phpMyAdmin se creó para permitir a los usuarios interactuar con MySQL a través de una interfaz web.
En esta guía, veremos cómo instalar y proteger phpMyAdmin con Docker Compose para administrar bases de datos en un sistema Ubuntu 20.04 LTS Focal Fossa.
Prerrequisitos
Para seguir este tutorial, necesitará:
- Un servidor que ejecuta Ubuntu 20.04 LTS, junto con un usuario no root con privilegios sudo y un firewall activo.
- Docker instalado en su servidor, siguiendo este tutorial Cómo instalar y configurar Docker en Ubuntu 20.04 LTS.
- Docker Compose instalado en su servidor, siguiendo este tutorial Cómo instalar Docker Compose en Ubuntu 20.04 LTS.
- Un nombre de dominio registrado.
Definir las variables de entorno
Primero, cree un directorio de proyecto para su configuración con el comando mkdir my_app
y navegue hasta él con el comando cd:
mkdir my_app && cd my_app
Su base de datos y contenedores de aplicaciones deberán acceder a ciertas variables de entorno en tiempo de ejecución para que los datos de la aplicación persistan y sean accesibles para su aplicación.
En lugar de configurar todos los valores en nuestro archivo Docker Compose (el archivo principal que contiene información sobre cómo se ejecutarán nuestros contenedores), podemos configurar los valores confidenciales en un archivo .env
Esto evitará que estos valores se copien en los repositorios de nuestro proyecto y se expongan públicamente.
En el directorio raíz del proyecto ~/my_app
, cree un archivo llamado.env:
nano.env
Los valores que estableceremos en este archivo incluyen una contraseña para nuestro usuario root de MySQL, un nombre de usuario y una contraseña para que un usuario normal no root acceda a la base de datos.
Agregue los siguientes nombres y valores de variable al archivo. Recuerde proporcionar sus valores para cada variable aquí:
Hemos incluido una contraseña para la cuenta administrativa raíz, así como nuestro nombre de usuario y contraseña preferidos para nuestra base de datos de aplicaciones.
Guarde y cierre el archivo después de completar la edición.
Dado que su .env
contiene información confidencial, deberá asegurarse de que esté incluido en sus proyectos dentro de los .gitignore
y .dockerignore
, que le dicen a Git y Docker qué archivos no copiar en sus repositorios Git e imágenes de Docker, respectivamente.
Si va a trabajar con Git para el control de versiones, inicialice su directorio de trabajo actual como un repositorio con git init
:
git init
Luego abra un archivo .gitignore
nano.gitignore
Agregue .env
dentro del archivo:
Guarde y cierre el archivo después de completar la edición.
Asimismo, es una buena precaución agregar .env
a un .dockerignore
, para que no termine en contenedores cuando se usa este directorio como contexto de compilación.
Abre el archivo:
nano.dockerignore
Agregue .env
dentro del archivo:
Opcionalmente, puede agregar archivos y directorios asociados con el desarrollo de su aplicación:
Guarde y cierre el archivo cuando termine.
Definir servicios con Docker Compose
El docker-compose.yml
contendrá las definiciones de servicio para la configuración. Un servicio en Compose es un contenedor en ejecución y las definiciones de servicio especifican información sobre cómo se ejecutará cada contenedor.
Con Compose, puede definir diferentes servicios para ejecutar aplicaciones de varios contenedores.
Para comenzar, abra el archivo docker-compose.yml
nano docker-compose.yml
Agregue el siguiente código para definir la versión de su archivo Compose y el servicio de base de datos db
A continuación, en la db
, agregue la definición del servicio de aplicación phpmyadmin
Finalmente agregue las definiciones de red y volumen:
El docker-compose.yml
se verá así:
Guarde y cierre el archivo una vez finalizada la edición.
Para obtener más información sobre los elementos específicos de los distintos servicios, lea el tutorial dedicado a la instalación de Wordpress con Docker Compose en el párrafo " Definición de servicios con Docker Compose ".
Crea los contenedores
Podemos iniciar nuestros contenedores con el docker-compose up
, que creará y ejecutará nuestros contenedores en el orden especificado.
Cree los contenedores con el docker-compose up
y la -d
db
contenedores db y phpmyadmin
se ejecutarán en segundo plano:
docker-compose up -d
Verá un resultado que confirma que se han creado sus servicios:
Creating db... done
Creating myapp_phpmyadmin_1... done
Con el docker-compose ps
, verifique el estado de sus servicios:
docker-compose ps
Debería ver una salida similar a la siguiente, con los db
y phpmyadmin
servicios de estar Up
:
Name Command State Ports
----------------------------------------------------------------------------------
db docker-entrypoint.sh --def... Up 3306/tcp, 33060/tcp
myapp_phpmyadmin_1 /docker-entrypoint.sh apac... Up 0.0.0.0:3333->80/tcp
Si ve algo diferente a Up
en la State
para los servicios db o phpmyadmin
, asegúrese de verificar los registros del servicio con el comando docker-compose logs
docker-compose logs service_name
Ahora puede acceder a PhpMyAdmin desde un navegador, conéctese a su nombre de dominio desde un navegador:
https://example.com
Conclusión
En este tutorial hemos visto cómo instalar PhpMyadmin con Docker Compose en Ubuntu 20.04 LTS Focal Fossa.
Te puede interesar: Cómo instalar WordPress con Docker Compose en Ubuntu 20.04 LTS.