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

760
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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