Estoy ejecutando Docker en Windows e inicio un contenedor Docker con MySql como este
docker run -p 3306:3306 --name test -e MYSQL_ROOT_PASSWORD=secret-pw -d mysql/mysql-server:5.5Luego, en mi host, inicio Mysql Workbench e intento conectarme, pero no funciona.
docker inspect test revela la dirección IP en 172.17.0.2 pero cuando hago ping no recibo respuesta
Tengo esto funcionando en un host de Linux y estoy bastante seguro de que he hecho exactamente los mismos pasos
Qué estoy haciendo mal ?
Documento de ayuda: https://docs.docker.com/samples/library/mysql/
Enlace de imagen: https://store.docker.com/images/mysql
Comando: docker run --name mysql_container_name --expose=3306 -p 3306 -v /my/own/datadir:/path/to/data/dir -e MYSQL_ROOT_PASSWORD=root_pwd -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
mysql_container_name : nombre del contenedor dockerexpose : puerto de exposición del contenedorp : puerto de creación de host/path/to/data/dir : ruta compartida entre el contenedor y el hostroot_pwd : contraseña raíz mysqltag : etiqueta del repositorioutf8mb4 : conjunto de caracteres del servidor mysql y tipo de intercalaciónutf8mb4_unicode_ci : conjunto de caracteres del servidor mysql y tipo de intercalación Ejemplo: docker run --expose=3306 -p 3306 --name mysql -v /my/own/datadir:/opt/mysql -e MYSQL_ROOT_PASSWORD=0112358139 -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
Los siguientes pasos para conectarse de forma remota:
docker exec -it mydb bash --> this will connect to mySql container. echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf --> this will update the my.cnf file. service mysql restart --> restart the mySql service. exit --> the mySql container. docker inspect mysql | grep IPAddress --> grep the IP address of the contaner. mysql -h 172.17.0.2 -u root –p --> remotely connect to the mySql.Su puerto host 3306 debería estar reenviando al contenedor, así que intente conectarse en localhost:3306. Cuando traté de replicar, obtuve el "Host 172.17.0.1 no permitido para conectarse a este servidor MySQL", lo que significa que al menos pasó.
Más sobre este último: https://github.com/fideloper/docker-mysql/issues/10