Как назначить в качестве статического порта для контейнера?

Я хочу назначить контейнеру порт, чтобы он получал один и тот же порт после каждого перезапуска контейнера.

Пример: у меня есть контейнер, в котором есть Apache. Apache работает через порт 80 внутри контейнера. Теперь, после запуска контейнера, Docker назначает порт хоста для порта контейнера, например: 49154 -> 80. Но порт хоста изменяется после перезапуска в зависимости от количества запущенных контейнеров. Я попытался указать порт в файле config.json контейнера, но он перезаписывается.

Можно ли указать порт хоста вручную?

Спасибо заранее и наилучшими пожеланиями, Крис

2 ответа

Решение

Согласно документации docker.io: https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/

$ sudo docker run -p 80:80 <image> <cmd>

Перенаправления портов по умолчанию могут быть встроены в контейнер с помощью команды сборки EXPOSE.

Когда вы запускаете Docker, вы можете использовать параметр '-p'.

docker run -p 80 yourimage apache2 будет делать то, что у вас есть.

Теперь вы можете указать ':', чтобы сделать этот порт статическим:

docker run -p :80 -p :443 yourimage apache2

Если вы используете Dockerfile с EXPOSE инструкция, это то же самое:)

Другие вопросы по тегам