我目前使用PyCharm(實際上是IntelliJ),並且一直在使用VirtualBox支持的Kitematic。Docker Mac Beta和容器連接到主機端口?
我有一個容器連接到主機(這是一個虛擬機)進行遠程調試。
問題是當我嘗試使用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 Beta如何工作,特別是在網絡方面。
我爲此使用了Docker-Compose,所以我可以通過網絡配置選項設置網絡,但到目前爲止,我還沒有得到任何隨機嘗試工作。
此外,該容器能夠訪問任何其他內容(google.com或其他),而不是主機上的特定端口。
主機是否不應嘗試訪問容器上的端口?反之亦然? –
你能否更詳細地解釋「主機(這是一臺虛擬機)」的含義?在任何情況下,當你有這樣的多層時,你想使用一個特定的IP並確保源和目標機器共享/橋接IP。 – ldg