Como eu forço uma versão especifica do mysql na hora de criar o container ? Não consegui usar a versão informada no tópico https://cursos.alura.com.br/forum/topico-container-wordpress-para-de-rodar-sem-motivo-71695
Como eu forço uma versão especifica do mysql na hora de criar o container ? Não consegui usar a versão informada no tópico https://cursos.alura.com.br/forum/topico-container-wordpress-para-de-rodar-sem-motivo-71695
Bom fiz da seguinte forma a criação do database:
docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -d mysql mysql/mysql-server:5.7
O problema é que o wordpress continua sem subir: Ele inicia e depois de um tempo cai. rodando o comando sudo docker logs blog-alura tenho o seguinte erro:
Warning: mysqli::__construct(): (HY000/1130): Host '172.17.0.3' is
not allowed to connect to this MySQL server in Standard input code on line 22
MySQL Connection Error: (1130) Host '172.17.0.3' is not allowed to connect to this MySQL server
Achei um link na internet dizendo que isso era um bug da versão 5.7, alterei para a versão 5.7.16 e continua o mesmo problema. O Container do wordpress sobre e na sequência cai.
docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -d mysql mysql/mysql-server:5.7.16
Estou usando ubuntu em uma maquina virtual (virtual box)
Olá Rogério,
O seu docker está instalado na máquina virtual ubuntu ou no seu sistema operacional?
Se tiver tudo rodando no ubuntu, você precisa linkar os containers do mysql e do wordpress, talvez isso resolva o problema.
Se vc subir o banco assim:
docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -d mysql mysql/mysql-server:5.7.16
Deverá subir o wordpress linkado com o banco, pelo nome do container (database), veja um exemplo abaixo:
docker run --name=wordpress --link database:database -p 8080:80 -e WORDPRESS_DB_HOST=database:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=teste123 -e WORDPRESS_DB_NAME=wordpress -d wordpress
Tente remover os containers que já estão rodando com mysql ou então colocar um nome diferente no novo container do banco.
Luan, meu docker está instalado na maquina virtual ubuntu.
Tentei rodar os comandos, porém não funcionaram.
O comando abaixo deu erro ao subir o mysql, foi preciso remover uma das palavras mysql
--Esse deu erro
docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -d mysql mysql/mysql-server:5.7.16
--funcionou assim:
sudo docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -d mysql/mysql-server:5.7.16
Apesar disso o wordpress continua com o mesmo erro, Ele sobre fica uns 30s e cai. No log permanece a mesma mensagem.
-- O comando docker logs wordpress exibe o seguinte:
-- Eu acredito que esse ip deva ser do container do wordpress
MySQL Connection Error: (1130) Host '172.17.0.3' is not allowed to connect to this MySQL server
Warning: mysqli::__construct(): (HY000/1130): Host '172.17.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
Realmente não sei mais o que fazer, criei essa maquina no virtual box com ubuntu para exatamente ter o ambiente igual do curso.
Pesquisando no google descobri que muita gente tem esse problema.Uma solução proposta é ao rodar o comando docker run apra criar o container do mysql, setar a variável MYSQL_ROOT_HOST=% No meu caso rodei o comando:
sudo docker run --name database -e MYSQL_ROOT_PASSWORD=teste123 -e MYSQL_ROOT_HOST=% -d mysql/mysql-server:5.7.16
Não entendi o que essa variável faz, mas depois de criar o container assim, o meu wordpress subiu e não caiu mais.
Alguem que conheça mais de mysql poderia explicar melhor essa variável MYSQL_ROOT_HOST ? Li no site do mysql que por padrão ele não aceita conexões externas e que precisa se configurar isso após instalação. Isso se aplica ao docker container ?
Fica a questão também, isso é um problema gerado pro estar sendo rodado o docker em uma maquina virtual ubuntu ao invés de uma fisica ? O comportamento seria diferente em uma física?
Show, que bom que funcionou.
Por padrão a configuração é pra deixar o mysql acessível pelo próprio container. Se quisermos permitir que o container do mysql receba conexões do host (da sua máquina virtual no seu caso) temos que configurar essa variável MYSQL_ROOT_HOST como 172.17.0.1 (gateway padrão do host do docker). Como você definiu como %
, ele está permitindo conexões de qualquer rede/sub-rede. Se quiser tenta mudar pra '172.17.0.3' que parece ser o endereço do seu wordpress pra testar.
Quanto a sua máquina virtual ubuntu, não tenho certeza, mas eu não tenho este problema com o mysql e conexões externas. Nunca precisei definir esta variável, ou isso é coisa de versões mais atuais ou então pode ter a ver com a configuração de rede que sua VM está usando.