Итак, у меня есть 3 порта, которые должны быть открыты для машинного интерфейса. Возможно ли это сделать с контейнером Docker?
Как я могу открыть более 1 порт с Docker?
Ответ 1
Чтобы открыть только один порт, это то, что вам нужно сделать:
docker run -p <host_port>:<container_port>
Чтобы открыть несколько портов, просто укажите несколько аргументов -p
:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Ответ 2
Step1
В вашем Dockerfile
вы можете использовать глагол EXPOSE
для отображения нескольких портов.
например.
EXPOSE 3000 80 443 22
Step2
Затем вы хотели бы создать новое изображение на основе выше Dockerfile
.
например.
docker build -t foo:tag .
Step3
Затем вы можете использовать -p
для сопоставления хост-порта с портом контейнера, как определено выше EXPOSE
of Dockerfile
.
например.
docker run -p 3001:3000 -p 23:22
Если вы хотите открыть ряд непрерывных портов, вы можете запустить докеры следующим образом:
docker run -it -p 7100-7120:7100-7120/tcp
Ответ 3
если вы используете файл docker-compose.yml
:
services:
varnish:
ports:
- 80
- 6081
Вы также можете указать хост/сетевой порт
varnish:
ports:
- 80:80
- 6081:6081