Docker mengekspos semua port atau jangkauan port dari 7000 hingga 8000


Jawaban:


137

Sejak Docker 1.5 Anda sekarang dapat mengekspos berbagai port ke kontainer terkait lainnya menggunakan:

Perintah Dockerfile EXPOSE :

EXPOSE 7000-8000

atau Perintah jalankan Docker :

docker run --expose=7000-8000

Atau sebagai gantinya Anda dapat mempublikasikan berbagai port ke mesin host melalui perintah jalankan Docker :

docker run -p 7000-8000:7000-8000


14
Periksa keluaran "iptables -L -n" pada mesin host dan Anda akan melihat ratusan baris masing-masing untuk pemetaan port tunggal. Jika Anda memberikan 5000-50000, maka praktis Anda harus menunggu lama. Apakah ini perilaku yang seharusnya?
ᐅ devrimbaris

8
@ ᐅ devrimbaris Ada juga proses buruh pelabuhan yang diluncurkan per port . Saya yakin inilah yang menghabiskan sebagian besar waktu kerja.
Matt

1
dokumen berbicara tentang --publish-all , -Pflag yang "Publikasikan semua port yang terekspos ke port acak". docs.docker.com/engine/reference/commandline/run
nils petersohn

4

Untuk siapa pun yang menghadapi masalah ini dan berakhir di posting ini ... masalahnya masih terbuka - https://github.com/moby/moby/issues/11185


Terima kasih banyak. Saya menjadi gila karena semuanya macet ketika mencoba untuk mengekspos berbagai seribu port.
sarusso

Apakah Anda menemukan solusi untuk mengekspos kisaran seribu pot? @sarusso
dko
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.