簡體   English   中英

Docker Mac Beta和容器是否連接到主機端口?

[英]Docker Mac Beta and container connecting to host ports?

我目前使用PyCharm(實際上是IntelliJ),並且一直在使用帶有VirtualBox支持的Kitematic。

我有一個連接到主機(這是虛擬機)的容器以進行遠程調試。

問題是當我嘗試使用Docker Mac Beta時,該容器似乎無法訪問主機上的任何特定端口,但可以ping通主機。 這沒有任何意義...

有人有想法么?

我是否需要使Python調試器在所有IP /端口上偵聽的魔術醬?

編輯:

為了澄清,在此環境中運行python腳本時,腳本必須啟動到指定ip /端口的出站連接。

以下是一些控制台輸出,可幫助您理解:

這是在容器本身內部。 我的Mac上的端口15001上運行了調試器。

# /sbin/ip route|awk '/default/ { print $3 }'
172.17.0.1
# ping 172.17.0.1
PING 172.17.0.1 (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: icmp_seq=0 ttl=64 time=0.078 ms
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.066 ms
^C--- 172.17.0.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.066/0.072/0.078/0.000 ms
# telnet 172.17.0.1 15001
Trying 172.17.0.1...
telnet: Unable to connect to remote host: Connection refused
#

然后在主機上(我的mac):

➜   telnet localhost 15001
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
501 1   0.1 UNIX

這一切都可以在基於舊的基於virtualbox的Docker設置中很好地使用,這是合理的,因為它使用了完整的虛擬機。 但是不確定新的Docker Beta是如何工作的,尤其是在聯網方面。

我為此使用Docker-Compose,因此我可以通過網絡配置選項設置網絡,但到目前為止,我還沒有進行任何隨機嘗試。

而且,容器可以訪問其他任何內容(google.com或其他內容),而不能訪問主機上的特定端口。

我認為問題在於您需要公開端口15001。

嘗試添加到Dockerfile

展覽15001

創建一個基於主機的回送設備,然后使用remote_host替代設備(如xdebug)將您的容器配置為連接回該主機(在port上),這將解決您的問題,就像它對PHP一樣(同樣的問題)。 從Mac的dockertoolbox切換到docker時,我們有相同的情況。 在此處查看包含啟動守護程序的配置示例,以創建主機回送接口: https ://gist.github.com/EugenMayer/3019516e5a3b3a01b6eac88190327e7c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM