簡體   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