вторник, 3 марта 2015 г.

Раскрытие портов из контейнера

Чтобы апликация из контейнера вышла "в свет" по сети, нужно контейнерный порт привязать на хостовый.
Для начала в Dockerfile:
EXPOSE 80
Потом при запуске контейнера нужно сделать собственно привязку на конкретный порт:
root# docker run -d -p 5000:80 --name=web1 apache-img

Чтобы увидеть что куда привязано, можем либо это посмотреть через docker ps или лучше через специальзированную команду, чтобы не распыляться на лишнюю информацию:
root# docker port web1
80/tcp -> 0.0.0.0:5000
0.0.0.0 - кстати означает, что порт 5000 подвязан на все сетевые интерфейсы хоста, которые имеют адресс IP4. Если нужно на конкретный, то нужно кроме порта указывать и конкретный ip.

Мы тоже можем раскрывать не только tcp, но и другие траспортные протоколы:
root# docker run -d -p 192.168.56.50:5001:80/udp --name=web2 apache-img

С ключем -P происходит запуск, который мапит все выставленные наружу порты контейнера на случайные порты хоста:
root# docker run -d -P --name=web-random-host-port apache-img

Комментариев нет:

Отправить комментарий