Descobri que o nome do host não era visível para outros contêineres durante o uso docker run
. Este é um problema conhecido (talvez mais um recurso conhecido), com parte da discussão sendo:
Provavelmente deveríamos adicionar um aviso aos documentos sobre o uso do nome do host. Acho que raramente é útil.
A maneira correta de atribuir um nome de host - em termos de rede de contêiner - é definir um alias como:
services:
some-service:
networks:
some-network:
aliases:
- alias1
- alias2
Infelizmente, isso ainda não funciona com docker run
. A solução alternativa é atribuir um nome ao contêiner:
docker-compose run --name alias1 some-service
E alias1
pode ser executado o ping de outros contêineres.
ATUALIZAÇÃO: como @grilix aponta, você deve usar docker-compose run --use-aliases
para disponibilizar os aliases definidos.