Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas: Rodando mysql docker

Olá pessoal,

estou iniciando o aprendizado de docker e fiquei com uma dúvida ao realizar a instalação do mysql.

Após executar o comando

docker run --name database -e MYSQL_ROOT_PASSWORD=senha -d mysql

o container rodou e o mysql estava no ar. Porém como posso acessá-lo? Tentei acessar por terminal, mas não entendi qual o ip dele. Ele está rodando em localhost?

Eu tentei abrir um novo terminal e acessar, mas não funcionou...

Comando executado: mysql -u root -p

Em seguida, digitei a senha "senha" (conforme definida acima), mas obtive o seguinte erro:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Alguém já tentou isso? Está faltando alguma coisa?

3 respostas

Normalmente você consegue acessar via Shell, mas não pelo localhost. Você tem que acessar pela interface de loopback, que é onde no fim, o Docker está compartilhando recursos.

mysql -h 0.0.0.0 -u root -psenha

Matheus, tentei aqui e deu o mesmo erro. Não consegui...

Quando eu rodo docker ps eu deveria ver esse 0.0.0.0 em ports?

Segue o resultado do ps:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
462ec7b6f917        mysql               "docker-entrypoint..."   2 hours ago         Up 30 seconds        3306/tcp            database

No caso, se eu tiver uma aplicação que usa o banco, e entre outras coisas, colocar o banco em um container, em minha aplicação ficaria correto utilizar o banco em 0.0.0.0? É possível definir um endereço para o container?

solução!

Jefferson, ao criar o container, você tem que mapear a porta para a sua porta local.

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

Dessa forma, você consegue acessar o banco de fora do container usando um client.