我目前使用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