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.