Ответы:
Чтобы выставить только один порт, вот что вам нужно сделать:
docker run -p <host_port>:<container_port>
Чтобы выставить несколько портов, просто предоставьте несколько -pаргументов:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Note: The -p flag can be used multiple times to configure multiple ports.
--env-file?
docker run -P(обратите внимание на верхний регистр), который автоматически выставляет все порты, определенные с помощью EXPOSE в Dockerfile
publishнет expose.
В вашем Dockerfile, вы можете использовать глагол, EXPOSEчтобы выставить несколько портов.
например
EXPOSE 3000 80 443 22
Затем вы хотели бы создать новое изображение на основе выше Dockerfile.
например
docker build -t foo:tag .
Затем вы можете использовать -pдля отображения порта хоста с контейнерным портом, как это определено в выше EXPOSEиз Dockerfile.
например
docker run -p 3001:3000 -p 23:22
В случае, если вы хотите выставить диапазон непрерывных портов, вы можете запустить Docker следующим образом:
docker run -it -p 7100-7120:7100-7120/tcp
если вы используете docker-compose.ymlфайл:
services:
varnish:
ports:
- 80
- 6081
Вы также можете указать хост / сетевой порт
varnish:
ports:
- 80:80
- 6081:6081
Если вы создаете контейнер из изображения и хотите выставить несколько портов (не публиковать), вы можете использовать следующую команду:
docker create --name
container name--expose 7000 --expose 7001image name
Теперь, когда вы запустите этот контейнер с помощью docker startкоманды, настроенные выше порты будут доступны.