Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

387
Visualizações
Connect to MySQL on localhost from Docker container

I have mysql running on my localhost I can connect it by running:

mysql -h 127.0.0.1 -P 3306 -u root -p

I also ran docker container with command:

docker run -tid -v $(pwd):/code -p 3306:3306 -p 5000:5000 --name container container

And I want to access my Mysql db from docker container. So I also type from docker container:

mysql -h 127.0.0.1 -P 3306 -u root -p

But it gives me error:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

What am I doing wrong? Ports seems to be correct. EDIT 1 Output of ifconfig in docker:

eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:02  
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1780 errors:0 dropped:0 overruns:0 frame:0
          TX packets:977 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2225781 (2.2 MB)  TX bytes:56572 (56.5 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:28 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:1400 (1.4 KB)  TX bytes:1400 (1.4 KB)
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Even if you configure MySQL to listen on all interfaces, and then from your container access MySQL from a non-loopback IP, you may find that Docker’s routing, NAT, and firewall rules do not allow you to access services running on the host. The fast workaround for this is to run your container on the host network stack with:

docker run -tid -v $(pwd):/code -p 3306:3306 -p 5000:5000 \
  --name container --net host container

You can also also move MySQL inside a container running on the same Docker network, and then access it via the container name using Docker’s DNS service discovery.

over 4 years ago · Santiago Trujillo Relatório

0

Use the default route. For example:

~# ip route show | grep "default" | awk '{print $3}'
172.18.0.1

then

mysql -h 172.18.0.1 -P 3306 -u root -p

if you need to automate that, let's say, use that IP on a shell script, send it to a shell script, take it as:

host=$(ip route show | grep \"default\" | awk '{print $3}' | xargs echo -n)

then you have the host ip addr on $host

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda