Как назначить статический порт контейнеру?
Я хочу назначить контейнер порту, чтобы он получал один и тот же порт после каждого перезапуска контейнера.
Пример:
У меня есть контейнер, в котором есть Apache. Apache работает на порту 80 внутри контейнера.
Теперь, после запуска контейнера, докер назначает порт хоста порт контейнера, например: 49154 → 80. Но порт хоста изменяется после перезапуска, в зависимости от количества запущенных контейнеров. Я попытался указать порт в файле config.json контейнера, но он перезаписывается.
Можно ли вручную указать порт хоста?
Спасибо заранее и с наилучшими пожеланиями,
Крис
Ответы
Ответ 1
В документации docker.io: https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
$ sudo docker run -p 80:80 <image> <cmd>
Переадресация портов по умолчанию может быть встроена в контейнер с командой сборки EXPOSE.
Ответ 2
При запуске docker вы можете использовать параметр "-p".
docker run -p 80 yourimage apache2
будет делать то, что у вас есть.
Теперь вы можете указать ':', чтобы сделать этот порт статическим:
docker run -p :80 -p :443 yourimage apache2
Если вы используете файл Docker с инструкцией EXPOSE
, это одно и то же:)