我在主机上启动了一个docker守护进程,听一些ip地址和端口,比如10.10.10.10和端口1234,然后我通过调用启动一个容器
sudo docker -H 10.10.10.10:1234 centos /bin/bash
同时,我在主机上有一个web服务runnig,在端口8080上运行。然后从容器内部,我无法连接到这个服务器。我试过了
curl http://10.10.10.10:8080
但收到错误消息:
curl: (7) couldn't connect to host
但我可以在其他机器上访问服务器,例如http://10.10.10.11:8080 似乎docker容器无法访问自己的主机中的服务?有没有什么办法解决这一问题?感谢
答案 0 :(得分:6)
在issue 1143和那里might be one day a --link-host
option讨论了这个问题。
与此同时,博文“Accessing the Docker Host Server Within a Container”列出了一些选项:
netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
虽然无法反省主机的IP地址(AFAIK),但您可以通过环境变量传递此信息:
docker@boot2docker:~$ docker run -i -t -e DOCKER_HOST=192.168.59.103 ubuntu /bin/bash
root@07561b0607f4:/# env
HOSTNAME=07561b0607f4
DOCKER_HOST=192.168.59.103
“Network Configuration”中还有其他选项,主机上的虚拟接口名为docker0
。