Conecte el banco de trabajo MySQL con el contenedor MySQL

9

Saqué el contenedor MySQL de Dockerhub y se está ejecutando en mi macbook pro como puedes ver a continuación

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
12cd3deaa3f0        mysql:latest        "/entrypoint.sh mysql"   47 hours ago        Up 10 minutes       3306/tcp            mysqldb

Luego descargué el banco de trabajo MySQL e intenté conectarlo con el contenedor MySQL, pero no funciona. Muestra error de conexión.

Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306:
Can't connect to MySQL server on '192.168.99.102' (60)

La IP de la máquina acoplable es

docker-machine ip default
192.168.99.100

y el puerto de MySQL es 3306 como puedes ver arriba.

Para exportar el puerto MySQL, intenté con la declaración

docker run -d -P mysql:latest mysqldb

No funciona en absoluto. ¿Qué estoy haciendo mal?

codificación_cero
fuente

Respuestas:

9

Parece que ejecutó el contenedor sin establecer el -p 3306:3306parámetro. Además, parece que escribiste mal la dirección IP del nombre de host en MySQL Workbench. Recomiendo comenzar desde cero siguiendo estas instrucciones:

  1. Ejecute el servidor mysql. (Cambie la contraseña admina lo que quiera)

docker run -e MYSQL_ROOT_PASSWORD=admin --name mysql -d -p=3306:3306 mysql

  1. obtener la dirección IP de la máquina virtual acoplable predeterminada ejecutando

docker-machine ip default

  1. Copie la dirección IP que obtendrá como resultado del comando anterior. (en su caso, debe ser 192.168.99.100)
  2. Abra MySQL Workbench y cree una nueva conexión. Pegue la dirección IP que copió en el campo "Nombre de host".

Deberías estar listo ahora.

Fikra
fuente
1

El parámetro -Pvincula los puertos exportados de un contenedor automáticamente a los puertos disponibles del host.

El siguiente comando debe vincular el puerto de contenedores 3306 al puerto 3306 del host. Ver: Publicar o exponer puerto

docker run -d -p 3306:3306 mysql:latest mysqldb

fuente
Escribí la declaración docker run -d -p 3306:3306 mysql:5.7.9 dbmysqly como salida que tengo d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43pero todavía no puedo acceder al contenedor mysql con mysql workbench. Cuando d6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
escribí