Доступ к IP-адресу контейнера докеров с другой физической машины

У меня есть сервер, прослушивающий порт 8080 в контейнере докеров, работающем на хосте boot2docker в моем MAC с запущенным Yosemite.

Если я попытаюсь свернуть IP-адрес boot2docker на порт (скажем, 8080) с моей машины, я смогу подключиться к серверу, работающему в контейнере докеров, и получить ответ.

Что меня интересует, так это то, что я хочу отправить запрос с другой машины на этот сервер и получить ответ. Я попытался добавить правило переадресации портов с помощью pfctl, но это не сработало. Когда я выполняю следующую команду на своей машине -

tcpdump -pnti en0 tcp port 8080

и сделать завиток на IP-адресе моей машины, я вижу, что что-то прослушивает порт 8080, но ответа нет. Здесь у нас есть два уровня иерархии — моя физическая машина, boot2docker, работающий на коробке, и контейнер Docker, на котором работает сервер. Как я могу выполнить эту задачу по отправке запроса одной машины на другую машину, имеющую сервер в контейнере докеров?

Спасибо !


person psbits    schedule 22.05.2015    source источник
comment
Вы должны иметь возможность использовать IP-адрес хоста boot2docker с помощью boot2docker ip. Это работает?   -  person objectuser    schedule 25.05.2015
comment
Ну, это просто позволяет вам получить доступ к контейнеру с той же физической машины, потому что IP-адрес boot2docker не будет доступен с другой машины. Но у меня это работает, опубликую решение ниже.   -  person psbits    schedule 01.06.2015


Ответы (1)


Я смог перенаправить запрос, поступающий с другой машины, но в той же сети, с помощью этой команды - """

boot2docker ssh -vnNTL ‹1st Physical Machine IP>: Любой порт: boot2docker IP или localhost>: Порт хоста сопоставляется с портом контейнера

""" Пример — boot2docker ssh -vnNTL 192.168.1.2:5000:localhost:32768

Здесь я могу отправить запрос с любой физической машины, например curl http://192.168.1.2:5000, который перенаправьте запрос на мой IP-адрес boot2docker, где контейнер может обслужить запрос и отправить соответствующий ответ, и вы должны увидеть его на машине, с которой вы отправили запрос.

person psbits    schedule 01.06.2015