En mi docker-compose.yml
archivo, 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
hostname
campo: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
hostname
ydomainname
sondocker-compose.yml
opciones 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
alias1
luego se puede hacer ping desde los otros contenedores.ACTUALIZACIÓN: Como señala @grilix, debe usar
docker-compose run --use-aliases
para hacer que los alias definidos estén disponibles.fuente
--use-aliases
condocker-compose run
. Esto evitará codificar el alias en elrun
comandoBasado 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-lb01
como nombre de host.fuente
La forma más sencilla que he encontrado es establecer el nombre del contenedor en la documentación
docker-compose.yml
Ver 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
affy
desde 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.7
la ú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ó.aliases
propiedad como se describe en lafoz
solución.container_name
yhostname
al 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
HOSTNAME
variable env en compose:Ahora funciona:
fuente