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:
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 así:
services:
some-service:
networks:
some-network:
aliases:
- alias1
- alias2
Desafortunadamente, esto todavía no funciona con docker run
. La solución alternativa es asignar un nombre al contenedor:
docker-compose run --name alias1 some-service
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.