Как получить доступ к Docker-контейнеру, работающему на MacOSX, с другого хоста?
Я пытаюсь начать работу с докером и хочу запуститьUbiquiti видеоконтроллер, Я установил Docker Toolbox и сумел заставить контейнер работать на моем хосте Yosemite и могу получить к нему доступ на том же Mac, перейдя по IP-адресу, возвращенномуdocker-machine ip default
, Но я хочу получить доступ к нему на других машинах в сети и в конечном итоге настроить переадресацию портов на домашнем маршрутизаторе, чтобы получить доступ к нему за пределами моей домашней сети.
Как предложено вboot2docker выпуск 160С помощью графического интерфейса Virtualbox я смог добавить сетевой мостовой адаптер, но после перезапуска виртуальной машиныdocker-machine
больше не может соединиться с виртуальной машиной.docker env default
висит долго, но в итоге возвращает некоторые переменные окружения вместе с сообщениемMaximum number of retries (60) exceeded
, Когда я настраиваю оболочку с этими переменными и пытаюсь запуститьdocker ps
Я получаю ошибку:An error occurred trying to connect: Get https://10.0.2.15:2376/v1.20/containers/json: dial tcp 10.0.2.15:2376: network is unreachable
.
Я подозреваю, что у докер-машины есть некоторые предположения о конфигурации сети в ВМ, и я их испортил.
docker-machine ssh ifconfig -a
возвращает следующее:
docker0 Link encap:Ethernet HWaddr 02:42:86:44:17:1E
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
dummy0 Link encap:Ethernet HWaddr 96:9F:AA:B8:BB:46
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 08:00:27:37:2C:75
inet addr:192.168.1.142 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe37:2c75/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2996 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:278781 (272.2 KiB) TX bytes:6824 (6.6 KiB)
Interrupt:17 Base address:0xd060
eth1 Link encap:Ethernet HWaddr 08:00:27:E8:38:7C
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fee8:387c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:767 errors:0 dropped:0 overruns:0 frame:0
TX packets:495 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:122291 (119.4 KiB) TX bytes:116118 (113.3 KiB)
eth2 Link encap:Ethernet HWaddr 08:00:27:A4:CF:12
inet addr:192.168.99.100 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea4:cf12/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:430 errors:0 dropped:0 overruns:0 frame:0
TX packets:322 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53351 (52.1 KiB) TX bytes:24000 (23.4 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0
кажется, получает разумный адрес DHCP от моего маршрутизатора.
Я не уверен, что это правильный подход или я лаю не на том дереве. Если я смогу подключить сетевой адаптер, работающий на виртуальной машине, я не знаю, как убедить мой докер-контейнер использовать его. Я пытался искать в Интернете все выше и ниже. Я нашел десятки сайтов, которые объясняют, как вам нужно получить доступ к контейнеру, используя значениеdocker-machine ip default
скорее, чемlocalhost
но ничего не объясняет, как получить доступ с другого хоста. Может быть, мне нужно улучшить свои навыки поиска в Google.