HAProxy 1.7 não está resolvendo o contêiner do Docker 1.13.1

1

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

Iniciou o contêiner com isto: 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 registros 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.

Eu não sei porque não está resolvendo?

EDIT, informação de resposta adicionada:

https://docs.docker.com/engine/userguide/networking/#the-default-bridge-network-in-detail :

Docker does not support automatic service discovery on the default bridge network. If you want to communicate with container names in this default bridge network, you must connect the containers via the legacy docker run --link option.

Legado é pré-versão 1.10.

Legado: link

Mais informações sobre links legados: link

    
por Karl Morrison 01.03.2017 / 23:29

1 resposta

1

Não acredito que a descoberta de DNS esteja ativada na rede de pontes docker padrão. Para conectar vários contêineres junto com a descoberta de DNS, crie uma rede e conecte os dois contêineres a essa rede:

docker network create proxy
docker network connect proxy haproxy
docker network connect proxy development-karl

Você também pode passar --net proxy para o comando docker run em vez de fazer o docker network connect após o fato.

    
por 02.03.2017 / 14:43