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
使用以下命令启动容器:docker run --name development-karl -h development-karl -d x/x:x
我的一部分haproxy.cfg
:
backend karl_dev_backend
balance roundrobin
option forwardfor
server karl_dev development-karl cookie development-karl weight 1 maxconn 1024 check
获取 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.
我不知道为什么它没有解决?
编辑,添加答案信息:
https://docs.docker.com/engine/userguide/networking/#the-default-bridge-network-in-detail
:
Docker 不支持默认桥接网络上的自动服务发现。如果要与此默认桥接网络中的容器名称进行通信,必须通过旧版 docker run --link 选项连接容器。
Legacy 是 1.10 之前的版本。
遗产:https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
答案1
我不认为默认的 docker bridge 网络上启用了 DNS 发现。要使用 DNS 发现将多个容器连接在一起,请创建一个网络并将两个容器都连接到该网络:
docker network create proxy
docker network connect proxy haproxy
docker network connect proxy development-karl
您还可以传递--net proxy
给docker run
命令,而不是docker network connect
事后再执行。