Saltar al contenido

Conéctese a MySQL en localhost desde el contenedor Docker

Solución:

Incluso si configura MySQL para escuchar en todas las interfaces, y luego desde su contenedor accede a MySQL desde una IP sin loopback, puede encontrar que las reglas de enrutamiento, NAT y firewall de Docker no le permiten acceder a los servicios que se ejecutan en el host. La solución rápida para esto es ejecutar su contenedor en la pila de la red del host con:

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

También puede mover MySQL dentro de un contenedor que se ejecuta en la misma red de Docker y luego acceder a él a través del nombre del contenedor utilizando el servicio de detección de DNS de Docker.

Utilice la ruta predeterminada. Por ejemplo:

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

luego

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

si necesita automatizar eso, digamos, use esa IP en un script de shell, envíelo a un script de shell, tómelo como:

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

entonces tienes la dirección IP del host en $host

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *