如何从docker容器内连接到主机中的服务?

yua*_*uan 10 containers docker

我有一个docker守护进程在主机启动时听一些ip地址和端口,比如10.10.10.10和端口1234,然后我通过调用启动一个容器

sudo docker -H 10.10.10.10:1234 centos /bin/bash
Run Code Online (Sandbox Code Playgroud)

同时,我在主机上有一个web服务runnig,在端口8080上运行.然后从容器内部,我无法连接到这个服务器.我试过了

curl http://10.10.10.10:8080
Run Code Online (Sandbox Code Playgroud)

但得到一条错误信息:

curl: (7) couldn't connect to host
Run Code Online (Sandbox Code Playgroud)

但我可以在其他机器上访问服务器,如http://10.10.10.11:8080 似乎docker容器无法在自己的主机上访问该服务?有没有什么办法解决这一问题?谢谢

Von*_*onC 6

那是在讨论问题1143,有可能是一天一个--link-host选项.

与此同时,博客文章" 在容器中访问Docker主机服务器 "列出了一些选项:

  • 网关方法: netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
  • IP方法:boot2docker ip地址是192.168.59.103.

虽然无法反省主机的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
Run Code Online (Sandbox Code Playgroud)

" 网络配置 "中还有其他选项,其中虚拟接口docker0在主机上命名.


归档时间:

查看次数:

9298 次

最近记录:

10 年,10 月 前