繁体   English   中英

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

[英]How to connect to service in the host machine from inside a docker container?

我在主机中启动了一个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容器无法在其自己的主机上访问该服务? 有没有什么办法解决这一问题? 谢谢

1143版中对此进行了讨论,并且可能会有一天--link-host选项

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

  • 网关方法: netstat -nr | grep '^0\\.0\\.0\\.0' | awk '{print $2}' 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

您可以在“ 网络配置 ”中使用其他选项,并在主机上使用名为docker0的虚拟接口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM