Cómo instalar PhpMyAdmin con Docker Compose en Ubuntu 20.04 LTS

1 mar 2021 4 min di lettura
Cómo instalar PhpMyAdmin con Docker Compose en Ubuntu 20.04 LTS
Indice dei contenuti

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á:

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í:

MYSQL_ROOT_PASSWORD=root_password
 MYSQL_USER=my_user
 MYSQL_PASSWORD=user_password
~ /my_app /.env

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:

.env
~ /my_app /.gitignore

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:

.env
~ /my_app /.dockerignore

Opcionalmente, puede agregar archivos y directorios asociados con el desarrollo de su aplicación:

.env.git
 docker-compose.yml.dockerignore
~ /my_app /.dockerignore

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

version: '3'

 services:
 db:
 image: mysql:8.0
 container_name: db
 restart: unless-stopped
 env_file:.env
 environment:
 - MYSQL_DATABASE=my_db
 volumes:
 - dbdata:/var/lib/mysql
 command: '--default-authentication-plugin=mysql_native_password'
 networks:
 - app-network
~ /my_app /docker-compose.yml

A continuación, en la db, agregue la definición del servicio de aplicación phpmyadmin

...
 phpmyadmin:
 depends_on:
 - db
 image: phpmyadmin/phpmyadmin
 restart: always
 ports:
 - 3333:80
 env_file:.env
 environment:
 PMA_HOST: db
 MYSQL_ROOT_PASSWORT: $MYSQL_ROOT_PASSWORD
 networks:
 - app-network
~ /my_app /docker-compose.yml

Finalmente agregue las definiciones de red y volumen:

...
 volumes:
 dbdata:

 networks:
 app-network:
 driver: bridge
~ /my_app /docker-compose.yml

El docker-compose.yml se verá así:

version: '3'

 services:
 db:
 image: mysql:8.0
 container_name: db
 restart: unless-stopped
 env_file:.env
 environment:
 - MYSQL_DATABASE=my_db
 volumes:
 - dbdata:/var/lib/mysql
 command: '--default-authentication-plugin=mysql_native_password'
 networks:
 - app-network

 phpmyadmin:
 depends_on:
 - db
 image: phpmyadmin/phpmyadmin
 restart: always
 ports:
 - 3333:80
 env_file:.env
 environment:
 PMA_HOST: db
 MYSQL_ROOT_PASSWORT: $MYSQL_ROOT_PASSWORD
 networks:
 - app-network

 volumes:
 dbdata:

 networks:
 app-network:
 driver: bridge
~ /my_app /docker-compose.yml

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.