Как подключиться к докер-контейнеру, запущенному на удаленном хосте

У меня есть две машины Windows: машина A, машина B под управлением Windows 10 с Hyper-V. Оба компьютера A и B находятся в одной сети.

На машине B я устанавливаю докер с помощью установщика Windows. Я вытаскиваю изображение и запускаю его с помощью:

docker run -p 1337:1337 --name my-image

Затем на машине B я могу получить доступ к конечной точке http, открыв окно браузера для http://127.0.0.1:1337.

Однако я не могу открыть ту же конечную точку http с машины A с помощью:

http://machineA.ip.address:1337

Между машиной A и B нет брандмауэра.

Ясно, что у меня проблема с NAT между машиной A и B, когда дело доходит до доступа к контейнеру докеров на машине B.

Как мне получить доступ к конечной точке HTTP, предоставляемой контейнером докеров, запущенным на компьютере B, с компьютера A?

попробуйте с docker run -p 0.0.0.0:1337:1337 --name my-image

fly2matrix 31.10.2018 12:46

@ fly2matrix Doh! Sp очевидно. Вы счастливы отметить это как ответ, если хотите?

TheEdge 05.11.2018 12:30
0
2
2 598
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны открыть гостевой порт докера контейнера, чтобы связать его с портом хоста.

$ docker run -p 0.0.0.0:1337:1337 --name my-image

Вышеупомянутая команда свяжет его со всеми сетевыми интерфейсами. При желании вы можете ограничить доступ к определенному сетевому интерфейсу по его IP-адресу.

Разве по умолчанию не «привязать ко всем интерфейсам»? Или Docker для Windows здесь особенный?

David Maze 05.11.2018 12:40

когда вы указываете 0.0.0.0, это означает привязку его ко всем интерфейсам.

fly2matrix 05.11.2018 12:41

@DavidMaze Я предполагаю, что Windows здесь особенная, поскольку она привязана только к localhost

TheEdge 06.11.2018 06:35

Другие вопросы по теме