En mi docker-compose.ymlarchivo, tengo lo siguiente. Sin embargo, el contenedor no recoge el valor del nombre de host. ¿Algunas ideas?
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
Cuando verifico el nombre de host en el contenedor, no responde affy.
docker
docker-compose
David Medinets
fuente
fuente

Respuestas:
A partir de la versión 3 de docker-compose , solo puede usar un
hostnamecampo:fuente
Esto parece funcionar correctamente. Si pongo tu configuración en un archivo:
Y luego menciona las cosas:
Y luego verifique el nombre de host dentro del contenedor, todo parece estar bien:
fuente
hostnameydomainnamesondocker-compose.ymlopciones válidas . Actualización: recién probado, todavía parece funcionar bien (docker-compose versión 1.4.2, docker versión 1.8.2).Descubrí que el nombre de host no era visible para otros contenedores al usar
docker run. Esto resulta ser un problema conocido (quizás más una característica conocida), y parte de la discusión es:La forma correcta de asignar un nombre de host, en términos de redes de contenedores, es definir un alias así:
Desafortunadamente, esto todavía no funciona con
docker run. La solución alternativa es asignar un nombre al contenedor:Y
alias1luego se puede hacer ping desde los otros contenedores.ACTUALIZACIÓN: Como señala @grilix, debe usar
docker-compose run --use-aliasespara hacer que los alias definidos estén disponibles.fuente
--use-aliasescondocker-compose run. Esto evitará codificar el alias en elruncomandoBasado en la documentación de Docker: https://docs.docker.com/compose/compose-file/#/command
Simplemente coloco
hostname: <string>mi archivo docker-compose.P.ej:
y el contenedor lb01 lo toma
at-lb01como nombre de host.fuente
La forma más sencilla que he encontrado es establecer el nombre del contenedor en la documentación
docker-compose.ymlVer nombre_contenedor . Es aplicable a docker-compose v1 +. Funciona de contenedor a contenedor, no de la máquina host al contenedor.Ahora debería poder acceder
affydesde otros contenedores utilizando el nombre del contenedor. Tuve que hacer esto para varios servidores redis en un entorno de desarrollo.NOTA La solución funciona siempre que no necesite escalar. Como entornos de desarrolladores individuales consistentes.
fuente
Compose 3.7la única manera me dieron el nombre de host del servicio de base de datos para ser vista desde dentro de otro contenedor de servicios de la misma pila fue nombrar el servicio como el nombre de host.hostname:Falló el uso de la propiedad. El uso del entorno HOSTNAME = construct también falló.aliasespropiedad como se describe en lafozsolución.container_nameyhostnameal mismo valor para lograr lo que necesitoNecesitaba girar el contenedor freeipa para tener un kdc que funcionara y tuve que darle un nombre de host, de lo contrario no se ejecutaría. Lo que finalmente funcionó para mí es configurar la
HOSTNAMEvariable env en compose:Ahora funciona:
fuente