Как назначить в качестве статического порта для контейнера?
Я хочу назначить контейнеру порт, чтобы он получал один и тот же порт после каждого перезапуска контейнера.
Пример: у меня есть контейнер, в котором есть 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
инструкция, это то же самое:)