¿Cómo configuro el nombre de host en Docker-compose?

Resuelto David Medinets asked hace 9 años • 6 respuestas

En mi docker-compose.ymlexpediente 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 reviso el nombre de host en el contenedor, no contesta affy.

David Medinets avatar Apr 28 '15 23:04 David Medinets
Aceptado

A partir de la versión 3.0 y posteriores del archivo Docker Compose , solo puede usar la hostnameclave:

version: "3.0"
services:
  yourservicename:
    hostname: your-name
improbable avatar Aug 06 '2020 20:08 improbable

Descubrí que el nombre de host no era visible para otros contenedores cuando usaba docker run. Esto resulta ser un problema conocido (quizás una característica más conocida), y parte de la discusión es:

Probablemente deberíamos agregar una advertencia a los documentos sobre el uso del nombre de host. Creo que rara vez es útil.

La forma correcta de asignar un nombre de host (en términos de redes de contenedores) es definir un alias como este:

services:
  some-service:
    networks:
      some-network:
        aliases:
          - alias1
          - alias2

Lamentablemente, esto todavía no funciona con docker run. La solución es asignar un nombre al contenedor:

docker-compose run --name alias1 some-service

Y alias1luego se puede hacer ping desde los otros contenedores.

ACTUALIZACIÓN: Como señala @grilix, debe utilizar docker-compose run --use-aliasespara que los alias definidos estén disponibles.

foz avatar Nov 13 '2017 12:11 foz