Instalación de MySQL y phpMyAdmin con Docker
Prerequisitos
docker-machine instalado en Windows, ya sea por Docker for Windows o por Docker Toolbox for WindowsOracle VM VirtualBox instalado en Windows (Docker Toolbox for Windows lo trae en la instalación), en el caso de Docker for Windows no es necesario ya que utiliza Microsoft Hyper-V
Instalación usando Docker for Windows
Crear y montar la carpeta local en el que quedarán las bases de datos de MySQL
En WindowsCrear la carpeta para MySQL
C:\mysql
En el icono de Docker Desktop ubicado en el área de notificación (caso Docker for Windows)
Abrir menú con click derecho
Seleccionar Settings
Ir a Shared Drivers
Seleccionar el disco que se quiere compartir y botón Apply
Crear la red para MySQL
En la consolaCrear la red llamada mysql-red
C:\WINDOWS\system32>docker network create mysql-red
Verificar la red mysql-red
C:\WINDOWS\system32>docker network ls
Crear el container para MySQL
Crear el container mysql-con con conexión a la red mysql-redC:\WINDOWS\system32>docker run -d \
--name mysql-con \
--network mysql-red \
-e MYSQL_ROOT_PASSWORD=P4ssw0rd \
-v /mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0 --innodb_use_native_aio=0
Verificar el acceso a MySQL
C:\WINDOWS\system32>docker exec -it mysql-con mysql -uroot -p
Crear en MySQL los permisos para permitir conexión por phpMyAdmin
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'P4ssw0rd';
Salir de MySQL
mysql> exit
Crear el container para phpMyAdmin
Crear el container phpmyadmin-con con conexión a la red mysql-red y al container mysql-con
C:\WINDOWS\system32>docker run -d \
--name phpmyadmin-con \--network mysql-red \
-e PMA_HOST=mysql-con \
-p 8080:80 \
phpmyadmin/phpmyadmin:edge
Verificar el acceso web
En WindowsAcceder por un navegador con la ip asignada en DOCKER_HOST en las variables de creación y con el puerto definido en el container de phpMyAdmin
http://192.168.99.100:8080/index.php
Instalación usando Docker Toolbox for Windows
Creación de una maquina para MySQL
En la consola$ docker-machine create --driver virtualbox mysql-machine
Verificar la creación de la maquina
$ docker-machine ls
Ver las variables de creación de la máquina
$ docker-machine env mysql-machine
Crear y montar la carpeta local en el que quedarán las bases de datos de MySQL
Apagar la maquina mysql-machine$ docker-machine stop mysql-machine
En Windows
Crear la carpeta para MySQL
C:\mysql
En VirtualBox
Seleccionar la maquina virtual mysql-machine
Ir a Configuración
Ir a Carpetas compartidas
Ir a Agregar nueva carpeta compartida
En Ruta carpeta: C:\mysql
En Nombre carpeta: mysql
Seleccionar Automontar y botón Aceptar
En la consola
Iniciar la maquina mysql-machine
$ docker-machine start mysql-machine
Ingresar a la maquina mysql-machine
$ docker-machine ssh mysql-machine
Verificar la carpeta para MySQL
Crear la red para MySQL
Crear la red llamada mysql-reddocker@mysql-machine:~$ docker network create mysql-red
Verificar la red mysql-red
docker@mysql-machine:~$ docker network ls
Crear el container para MySQL
Crear el container mysql-con con conexión a la red mysql-reddocker@mysql-machine:~$ docker run -d \
--name mysql-con \
--network mysql-red \
-e MYSQL_ROOT_PASSWORD=P4ssw0rd \
-v /mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0 --innodb_use_native_aio=0
Verificar el acceso a MySQL
docker@mysql-machine:~$ docker exec -it mysql-con mysql -uroot -p
Crear en MySQL los permisos para permitir conexión por phpMyAdmin
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'P4ssw0rd';
Salir de MySQL
mysql> exit
Crear el container para phpMyAdmin
Crear el container phpmyadmin-con con conexión a la red mysql-red y al container mysql-con
docker@mysql-machine:~$ docker run -d \
--name phpmyadmin-con \--network mysql-red \
-e PMA_HOST=mysql-con \
-p 8080:80 \
phpmyadmin/phpmyadmin:edge
Verificar el acceso web
En WindowsAcceder por un navegador con la ip asignada en DOCKER_HOST en las variables de creación y con el puerto definido en el container de phpMyAdmin
http://192.168.99.100:8080/index.php
Permitir el acceso web desde otro equipos de la LAN
En VirtualBoxSeleccionar la maquina virtual mysql-machine
Ir a Configuración
Ir a Red
Ir al Adaptador que aparece Conectado a: NAT
Desplegar a Avanzadas
Seleccionar botón Reenvío de puertos
Ir a Agrega una nueva regla de reenvío
Nombre: Rule LAN
Protocolo: TCP
IP anfitrión:
Puerto anfitrión: 8080
IP invitado:
Puerto invitado: 8080
Seleccionar botón Aceptar
Referencias y Fuentes
- Sitio Oficial de Docker www.docker.com
- Install Docker for Windows docs.docker.com/docker-for-windows/install
- Install Docker Toolbox on Windows docs.docker.com/toolbox/toolbox_install_windows
- Documentación Oficial de Docker para docker-machine docs.docker.com/machine
- Repositorio Oficial de Docker para MySQL hub.docker.com/_/mysql
- Repositorio Oficial de Docker para phpMyAdmin hub.docker.com/r/phpmyadmin/phpmyadmin
- How to install MySQL and phpMyAdmin with Docker blog.thenets.org/how-to-install-mysql-and-phpmyadmin-with-docker
- Solución para el bug de conexión de MySQL a la carpeta local stackoverflow.com/questions/48239668/fails-to-initialize-mysql-database-on-windows-10
- Solución para el bug en la conexión de phpMyAdmin a MySQL 8.0 stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0
Comentarios
Publicar un comentario