![](/img/trans.png)
[英]How to connect to a Postgres server in a Docker (1.12.0) container on a Mac?
[英]Docker for mac 1.12.0: how to connect to host from container
我已經在我的 os x 10.10 上更新了 docker,所以它現在使用的是 os x 本機虛擬化。 但是,我發現從我的 nginx 容器中連接到我的主機很棘手。 我試過這個:
/sbin/ip route|awk '/default/ { print $3 }'
並得到了答案:
172.17.0.1
然后我在 docker-compose.yml 中使用了這個 ip:
extra_hosts:
- "master:172.17.0.1"
但盡管如此,我還是不斷收到錯誤消息:
172.17.0.1 - - [21/Jul/2016:09:33:46 +0000] "GET /api HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" "-" 2016/07/21 09:33:46 [error] 7#7: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: soc-credit.ru, request: "GET /api HTTP/1.1", upstream: "http://172.17.0.5:8080/api", host: "localhost"
請注意這部分: client: 172.17.0.1
。 由於我已經從主機發出請求,因此證明我在第一步中獲得的 ip 是正確的。 但無論如何都沒有建立連接。
我想強調的是,我在從容器內連接到主機時遇到問題,反之亦然。
我做錯了什么? 謝謝!
遇到了同樣的問題並且在 Docker 和網絡配置方面缺乏經驗,我努力使各種提議的解決方案發揮作用。 但是,自從 Docker for Mac 更新: Docker Community Edition 17.06.0-ce-mac18, 2017-06-28 (stable)我發現使用“實驗性”主機名docker.for.mac.localhost
允許我聯系服務從容器內在 Mac 主機上運行。 對開發非常有用!
我遇到了同樣的問題,我發現了這個
https://docs.docker.com/docker-for-mac/networking/#/known-limitations-use-cases-and-workarounds
注意段落“我想從容器連接到主機上的服務”
我還沒有嘗試過,因為我正在尋找更具體的解決方案(無論如何,除了向我的 lo 地址添加別名)...
如果有人在上面有什么請告知!
最新:DNS 名稱 host.docker.internal 應該用於從容器解析主機。 較舊的別名(仍然有效)已被棄用,取而代之的是這個別名。 (參見https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06 )。 應該使用 docker.for.mac.host.internal 而不是 Docker Community Edition 17.12.0-ce-mac46 2018-01-09 中的 docker.for.mac.localhost。 這允許您從 docker 容器內連接到在 Mac 上運行的服務。請參閱以下鏈接
從 docker 18.03 開始官方推薦連接特殊的 DNS 名稱host.docker.internal
,解析為主機使用的內部 IP 地址,這是為了開發目的,參考https://docs.docker.com/ docker-for-mac/networking/#use-cases-and-workarounds
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.