Відповіді:
Щоб відкрити лише один порт, це потрібно зробити:
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
(зверніть увагу на великі букви) , який автоматично виставляє всі порти , визначені з піддавався в 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 run -it -p 7100-7120:7100-7120/tcp
якщо ви використовуєте docker-compose.yml
файл:
services:
varnish:
ports:
- 80
- 6081
Ви також можете вказати порт хоста / мережі
varnish:
ports:
- 80:80
- 6081:6081
Якщо ви створюєте контейнер із зображення і хочете відкрити кілька портів (не публікувати), ви можете скористатися такою командою:
container name
docker create --name --expose 7000 --expose 7001image name
Тепер, коли ви запускаєте цей контейнер за допомогою docker start
команди, налаштовані порти будуть відкриті вище.