0
Docker容器無法通過端口連接到主機系統的原因是什麼?Docker:如何打開端口到主機?
具體來說,我試圖連接到在Docker主機上運行的MySQL服務器(Docker橋上的172.17.0.1
)。但由於某些原因,端口3306
始終關閉。
重現的步驟非常簡單:
- 配置MySQL(或服務),以監聽
0.0.0.0
(bind-address=0.0.0.0
在~/.my.cnf
) 運行
$ docker run -it alpine sh # apk add --update nmap # nmap -p 3306 172.17.0.1
這它。無論我做什麼,它總是會顯示
PORT STATE SERVICE
3306/tcp closed mysql
我試過同樣的Ubuntu的圖像,Windows主機和其他端口以及。
如果可能的話,我想避免--net=host
,只是爲了正確使用集裝箱化。
看看這個答案:http://stackoverflow.com/a/24326540/645002這是非常徹底的,應該讓你在哪裏你需要是 – jaxxstorm
@Frap是的,這是一個很好的答案,也是我最得到的地方有關如何使用網橋模式和獲取主機IP地址等信息。但不幸的是,這並沒有幫助解決這個問題。 – Opossum
沒有完全通過docker設置自動橋設置(假設你不是iptables受虐狂),並且不包括--net = host .....通過--add-host爲主機傳遞一個自定義dns條目。 – user2105103