Docker, 7000'den 8000'e kadar tüm bağlantı noktalarını veya bağlantı noktaları aralığını ortaya çıkarır


101

Dockerfile'da bir port aralığı belirtebilir miyim

EXPOSE 7000-8000

ve konteyneri çalıştırırken, açıktaki tüm bu bağlantı noktalarını ana makinedeki aynı bağlantı noktalarına bağlar mı?

docker run -p 7000-8000:7000-8000

Yanıtlar:


138

Docker 1,5 yana artık olabilir açığa kullanarak diğer bağlantılı konteynerlere bir bağlantı noktası aralığını:

Dockerfile MARUZ komutu:

EXPOSE 7000-8000

veya Docker run komutu:

docker run --expose=7000-8000

Veya bunun yerine Docker run komutu ile ana makineye bir dizi bağlantı noktası yayınlayabilirsiniz :

docker run -p 7000-8000:7000-8000


14
Ana makinedeki "iptables -L -n" çıktısını kontrol edin ve her biri tek bağlantı noktası eşlemesi için yüzlerce satır göreceksiniz. 5000-50000 verirseniz, pratik olarak uzun süre beklemeniz gerekir, bu sözde davranış mı?
ᐅ devrimbaris

8
@ ᐅ devrimbaris Port başına da başlatılan bir docker süreci var . Çalışma süresinin çoğunu alan şeyin bu olduğuna inanıyorum.
Matt

1
Dokümanlar, --publish-all , -P"açıktaki tüm bağlantı noktalarını rastgele bağlantı noktalarında yayınla" işaretinden bahseder . docs.docker.com/engine/reference/commandline/run
nils petersohn

4

Bu sorunla karşılaşan ve bu gönderiye son veren herkes için ... sorun hala açık - https://github.com/moby/moby/issues/11185


Çok teşekkür ederim. Bin port menzilini açığa çıkarmaya çalışırken her şey sıkıştığı için deliriyordum.
sarusso

Bin tencere aralığını ortaya çıkarmak için bir çözüm buldunuz mu? @sarusso
dko
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.