Conecte o ambiente de trabalho MySQL ao contêiner MySQL

9

Puxei o contêiner MySQL do Dockerhub e ele está sendo executado no meu macbook pro, como você pode ver a seguir

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

Depois baixei o ambiente de trabalho MySQL e tentei conectá-lo ao contêiner MySQL, mas ele não funciona. Mostra erro de conexão.

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)

O IP da máquina docker é

docker-machine ip default
192.168.99.100

e a porta do MySQL é 3306 como você pode ver acima.

Para exportar a porta MySQL, tentei com a instrução

docker run -d -P mysql:latest mysqldb

Não funciona de forma nenhuma. O que estou fazendo errado?

zero_coding
fonte

Respostas:

9

Parece que você executou o contêiner sem definir o -p 3306:3306parâmetro. Além disso, parece que você digitou incorretamente o endereço IP do nome do host no MySQL Workbench. Eu recomendo começar do zero seguindo estas instruções:

  1. Execute o servidor mysql. (Altere a senha adminpara o que quiser)

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

  1. obtenha o endereço IP da máquina virtual docker padrão executando

docker-machine ip default

  1. Copie o endereço IP que você obterá como resultado do comando anterior. (no seu caso, deve ser 192.168.99.100)
  2. Abra o MySQL Workbench e crie uma nova conexão. Cole o endereço IP que você copiou no campo "Nome do host".

Você deve estar pronto agora.

Fikra
fonte
1

O parâmetro -Pliga as portas exportadas de um contêiner automaticamente às portas disponíveis do host.

O comando a seguir deve vincular a porta 3306 de contêineres à porta 3306 do host. Consulte: Publicar ou expor a porta

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

fonte
Eu digitei a instrução docker run -d -p 3306:3306 mysql:5.7.9 dbmysqle como saída eu tenho, d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43mas ainda não consigo acessar o contêiner mysql com o mysql workbench. Quando eu digitei o docker ps, ele me mostrad6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding 25/11/2015