docker ps -a
:
de09facf7c91 x/x:x "/usr/bin/supervisord" 51 minutes ago Up 24 minutes 8080/tcp development-karl
226a1b80a233 x/x:x "/usr/bin/supervisord" 2 hours ago Up About a minute 0.0.0.0:80-84->80-84/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:1988->1988/tcp, 5672/tcp haproxy
Inicie o container com isso:docker run --name development-karl -h development-karl -d x/x:x
parte do meu haproxy.cfg
:
backend karl_dev_backend
balance roundrobin
option forwardfor
server karl_dev development-karl cookie development-karl weight 1 maxconn 1024 check
Obtenha o erro nos logs do haproxy:
[ALERT] 059/222244 (683) : parsing [/etc/haproxy/haproxy.cfg:67] : 'server karl_dev' : could not resolve address 'development-karl'.
[ALERT] 059/222244 (683) : Failed to initialize server(s) addr.
Não sei porque não resolve?
EDIT, informações de resposta adicionadas:
https://docs.docker.com/engine/userguide/networking/#the-default-bridge-network-in-detail
:
O Docker não oferece suporte à descoberta automática de serviço na rede de ponte padrão. Se você deseja se comunicar com nomes de contêineres nessa rede de ponte padrão, deve conectar os contêineres por meio da opção legado docker run --link.
O legado é anterior à versão 1.10.
Legado: https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
Mais informações sobre links legados: https://docs.docker.com/engine/userguide/networking/work-with-networks/#linking-containers-without-using-user-defined-networks
Não acredito que a descoberta de DNS esteja habilitada na rede padrão docker bridge. Para conectar vários contêineres com a descoberta de DNS, crie uma rede e conecte os dois contêineres a essa rede:
Você também pode passar
--net proxy
para odocker run
comando em vez de fazer odocker network connect
depois do fato.