paint-brush
MariaDB + Phpmyadmin + Docker: Ejecución de base de datos localpor@ifomin
34,220 lecturas
34,220 lecturas

MariaDB + Phpmyadmin + Docker: Ejecución de base de datos local

por Igor Fomin2m2020/01/21
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Haré que MariaDB y Phpmyadmin se ejecuten en un contenedor docker. Reutilizaré la configuración de carpetas y todos los archivos de la receta anterior - 02.
featured image - MariaDB + Phpmyadmin + Docker: Ejecución de base de datos local
Igor Fomin HackerNoon profile picture

Haré que MariaDB y Phpmyadmin se ejecuten en un contenedor docker. Reutilizaré la configuración de carpetas y todos los archivos de la receta anterior: 02.

Los archivos fuente se pueden encontrar aquí:

https://github.com/ikknd/docker-study en la carpeta receta-03

1. Modifique el archivo docker-compose.yml

Aquí hago varias cosas:

  • crear volumen -
     mariadb-data
    . Aquí es donde se almacenarán todos los datos de la base de datos, incluso si se reinicia el contenedor, los datos estarán allí.
  • Variable ambiental
     MYSQL_ROOT_PASSWORD: qwerty
    - establece la contraseña de root para el contenedor mariadb.
  • Variable ambiental
     PMA_ARBITRARY=1
    - agrega el campo de entrada "servidor" a la página de inicio de sesión de phpmyadmin (de esta manera puede usar este phpmyadmin con una base de datos MySQL externa, y no solo esta configuración local)
  • Variable ambiental
     PMA_HOST=mariadb
    - le dijo a phpmyadmin cómo conectarse a mariadb
  • mapas de puertos para
     phpmyadmin - 8000:80
    - esto asigna el puerto interno 80 desde el interior del contenedor al puerto 8000 en mi máquina host
  • "
     depends_on
    " - evita que el contenedor comience antes que otro contenedor, del cual depende

2. Vaya a /var/www/docker-study.loc/recipe-03/docker/ y ejecute:

 docker-compose up -d

Puedo ir a:

 myapp.loc/
- y todavía veo la página de phpinfo

 myapp.loc:8000
- vea phpmyadmin, puedo iniciar sesión usando las credenciales de root/qwerty

3. ¿Qué pasa si necesito que la base de datos esté en funcionamiento con una base de datos inicial dentro y no vacía?

Esto se puede lograr modificando

 mariadb
sección con:

 command: "mysqld --init-file /data/application/init.sql"

y

 volumes: - ./init.sql:/data/application/init.sql
  •  init.sql
    - es un volcado de base de datos existente.
  • usando volúmenes, copio este archivo en el contenedor
     /data/application/init.sql
    ubicación
  • usando "
     mysqld --init-file
    "comando: le digo a mysql que inicie e importe init.sql

4. Después de ejecutar la base de datos, ¿cómo exportar/importar la base de datos?

Para ver la lista de contenedores y conocer la identificación del contenedor o el nombre del contenedor mariadb:

 docker container ls

Importar:

 docker exec -i docker_mariadb_1 mysql -uroot -pqwerty DB_NAME < your_local_db_dump.sql

Exportar:

 docker exec -i docker_mariadb_1 mysqldump -uroot -pqwerty DB_NAME > your_local_db_dump.sql