Сопоставьте порты, чтобы вы могли получить доступ к приложениям, запущенным в Docker, с хоста OSX
Я играл с Docker некоторое время (на OSX через Vagrant), который работал очень хорошо. Чтобы получить доступ к моим приложениям, работающим в док-контейнерах, мне пришлось настроить Vagrant на использование статических IP-адресов (настройка "private_network").
Хотя это сработало хорошо, я думаю, что новый подход к использованию boot2docker немного легче и удобнее, так как я могу запускать docker непосредственно в OSX. Однако, если я запускаю docker с обычной переадресацией портов, я получаю эту ошибку:
docker run -p :5672 -p :15672 mikaelhg/docker-rabbitmq
2014/02/09 10:12:47 Error: start: Cannot start container fecd0f0225f49a889e63e9b113bff36305e9b9ab146ada6730d6cfffe9a10e0b: Process could not be started
Итак, если я явно сопоставлю это с другим портом хоста, он начнет
docker run -p 5000:5672 -p 15000:15672 mikaelhg/docker-rabbitmq
Однако я не могу открыть это на моем хосте OSX. Я знаю, что эта настройка отличается от Vagrant, поскольку она не использует статические IP-адреса, а использует NAT, но почему-то я не могу найти надлежащие документы о том, как я могу получить доступ к своим приложениям с хоста OSX.
Может кто-нибудь указать мне правильные документы или дать пример, какие настройки мне нужно использовать, чтобы заставить boot2docker настроить перенаправление портов для меня?
1 ответ
Если вы используете VirtualBox, настройте переадресацию портов следующим образом:
$ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port5000,tcp,,5000,,5672"
$ VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port5000,udp,,5000,,5672"
Прочитайте больше:
http://www.deadcodersociety.org/blog/forwarding-a-range-of-ports-in-virtualbox/ https://github.com/dotcloud/docker/issues/4007