Открытые порты для контейнеров Docker

Открытые порты для контейнеров Docker

Я начинаю с Docker, просто пытаюсь запустить Docker-контейнер с веб-приложением и увидеть его в нашей локальной сети.

Я установил свежую Ubuntu 14 LTS в VirtualBox без каких-либо дополнительных служб (ни GUI, ни LAMP, ни OpenSSH...), а затем установил только Docker:

curl -sSL https://get.docker.com/ | sh

и я запустил контейнер Odoo (OpenERP) (ранее запускал контейнер postgree)

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres
docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -t odoo

Очень просто. Похоже, работает. Браузер не установлен, но я подключился через telnet к 127.0.0.1:8069 и отправил GET-запрос. Он ответил.

Теперь мне нужно получить доступ к сервису извне. Как?

  • Сетевой интерфейс VirtualBox настроен как мост.

  • Я установил фиксированный IP (192.168.0.150) в интерфейсе Ubuntu eth0.

  • UFW отключен

  • Я могу пропинговать 192.168.0.150 с других компьютеров, и Ubuntu отвечает.

  • Но браузер ничего не обнаруживает по адресу 192.168.0.150:8069

  • Невозможно подключиться через telnet к 192.168.0.150:8069

Я полагаю, что это какая-то конфигурация перенаправления портов или сопоставления интерфейсов. Не могли бы вы мне помочь, пожалуйста? :)

решение1

Наконец я нашел ответ. Проблема была в назначении порта. Если вы установите:

-p 127.0.0.1:8069:8069

вы выставляете ТОЛЬКО localhost. Это отличный вариант безопасности, если вам нужна только локальная служба, и вы хотите получить к ней доступ только с сервера. Но если вы хотите выставить порт для ВСЕХ интерфейсов, просто введите:

-p 8069:8069

Затем вы сможете получить доступ к сервису через сеть через интерфейс eth0 :)

Связанный контент