Jawaban:
Untuk mengekspos hanya satu port, inilah yang perlu Anda lakukan:
docker run -p <host_port>:<container_port>
Untuk mengekspos banyak port, cukup sediakan beberapa -p
argumen:
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
?
publish
bukan expose
.
Di Anda Dockerfile
, Anda dapat menggunakan kata kerja EXPOSE
untuk mengekspos beberapa port.
misalnya
EXPOSE 3000 80 443 22
Anda kemudian ingin membangun gambar baru berdasarkan di atas Dockerfile
.
misalnya
docker build -t foo:tag .
Kemudian Anda dapat menggunakan -p
untuk memetakan port host dengan pelabuhan kontainer, sebagaimana didefinisikan dalam di atas EXPOSE
dari Dockerfile
.
misalnya
docker run -p 3001:3000 -p 23:22
Jika Anda ingin mengekspos berbagai port berkelanjutan, Anda dapat menjalankan buruh pelabuhan seperti ini:
docker run -it -p 7100-7120:7100-7120/tcp
jika Anda menggunakan docker-compose.yml
file:
services:
varnish:
ports:
- 80
- 6081
Anda juga dapat menentukan port host / jaringan
varnish:
ports:
- 80:80
- 6081:6081
Jika Anda membuat wadah dari gambar dan ingin mengekspos beberapa port (tidak mempublikasikan) Anda dapat menggunakan perintah berikut:
buruh pelabuhan membuat --name
container name
--expose 7000 --expose 7001image name
Sekarang, ketika Anda memulai wadah ini menggunakan docker start
perintah, port yang dikonfigurasi di atas akan terbuka.