В настоящее время я использую PyCharm (на самом деле IntelliJ) и использовал Kitematic с поддержкой VirtualBox.Docker Mac Beta и контейнер, соединяющий порты хоста?
У меня есть контейнер, соединяющийся с хостом (который является виртуальной машиной) для удаленной отладки.
Проблема заключается в том, что когда я пытаюсь использовать Docker Mac Beta, контейнер, похоже, не может получить доступ к каким-либо конкретным портам на хосте, но он может пинговать хост. Что не имеет никакого смысла ...
У кого-нибудь есть идеи?
Есть ли какой-то волшебный соус Мне нужно, чтобы отладчик python мог прослушивать все IP-адреса/порты?
редактирует:
Чтобы уточнить, при запуске питон скрипт в этой среде, скрипт должен инициировать исходящий подключиться к указанному IP/порт.
Вот некоторые консольный вывод, чтобы помочь понять:
Это внутри самого контейнера. У меня есть отладчик, работающий на порту 15001 на моем Mac.
# /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
#
А потом на хозяина (мой макинтош):
➜ 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