Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

757
Vistas
docker-compose nombre de host y resolución local

Al crear contenedores docker con un archivo docker-compose que especifica el nombre de host ( hostname: ) y las direcciones IP ( ipv4_address: ), me gustaría que la computadora local (la computadora que ejecuta el servicio docker daemon, también conocida como mi computadora portátil) pueda resolver esos nombres de host, sin la necesidad de (demasiada) intervención manual. Es decir, si el contenedor es un servicio de servidor web con el nombre de host my_webserver , me gustaría que my_werbserver resuelva en la dirección IP que asigné a ese contenedor.

¿Cuál es la mejor manera de lograr eso? ¿Algo mejor que mantener /etc/hosts en mi computadora portátil manualmente?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Como mencionó @Kārlis Ābele, no creo que puedas hacer lo que necesitas sin servicios adicionales. Una solución sería ejecutar dnsmasq en un contenedor docker en la misma red que los otros contenedores docker. Consulte Hacer que el servidor DNS interno esté disponible desde el host

 docker run -d --name dns -p 53:53 -p 53:53/udp --network docker_network andyshinn/dnsmasq:2.76 -k -d

Comprueba que funciona usando localhost como DNS

 nslookup bar localhost

Opcionalmente, configure localhost como servidor DNS. En Ubutu 18.04, por ejemplo, edite /etc/resolvconf/resolv.conf.d/head .

 nameserver localhost

Reinicie el servicio resolvconf .

 sudo service resolvconf restart

Ahora debería poder hacer ping a los contenedores por nombre.

EDITADO: una solución alternativa (basada en la respuesta de @Kārlis Ābele) es escuchar los eventos de la ventana acoplable y actualizar /etc/hosts . Una implementación básica:

 #!/usr/bin/env bash while IFS= read -r line; do container_id=$(echo ${line}| sed -En 's/.*create (.*) \(.*$/\1 /p') container_name=$(echo ${line}| sed -En 's/.*name=(.*)\)$/\1 /p') ip_addr=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${container_id}) echo ${ip_addr} ${container_name} >> /etc/hosts done < <(docker events --filter 'event=create')
over 4 years ago · Santiago Trujillo Denunciar

0

Bueno, parece algo que no sería posible sin algún servicio personalizado que escuche eventos en el demonio Docker...

Cómo haría esto es escribir un servicio simple que escuche los eventos de Docker ( https://docs.docker.com/engine/reference/commandline/events/ ) y actualice el archivo /etc/hosts en consecuencia.

Aparte de eso, sin actualizar manualmente el archivo de hosts, no creo que haya otras opciones.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda