Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

759
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!