Docker'da bir UDP Bağlantı Noktasını nasıl yayınlarım?


139

Bir UDP bağlantı noktasını Docker kapsayıcıdan ana makineye nasıl iletirim?

Yanıtlar:


220

-P bayrağını kullanın ve /udpbağlantı noktası numarasına sonek ekleyin .

-p 53160:53160/udp

Tam komut

sudo docker run -p 53160:53160 \
    -p 53160:53160/udp -p 58846:58846 \ 
    -p 8112:8112 -t -i aostanin/deluge /start.sh

Mac'te boot2docker çalıştırıyorsanız, boot2docker'daki aynı bağlantı noktalarını yerel makinenize ilettiğinizden emin olun.

Ayrıca konteyner ihtiyacı UDP kullanarak almak için bu belge olabilir MARUZ içinde Dockerfile(port yayınlamaz MARUZ):

EXPOSE 8285/udp

Kapsayıcı dokümanlarında daha fazla Docker Networking bilgisi bulunan bir bağlantı: https://docs.docker.com/config/containers/container-networking/ (yorumlarda Eski Profesyonel'in izniyle)


3
(rant) Kelimenin tam anlamıyla hiçbir yerde resmi belgelerde, vay canına. "-p = []: Bir kapsayıcı bağlantı noktasını veya bir dizi bağlantı noktasını ana makine biçiminde yayınlar: ip: hostPort: containerPort | ip :: containerPort | hostPort: containerPort | containerPort". Resmi örnekte "-p 1234-1236: 1234-1236 / tcp" ifadesinden bahsedilmesine rağmen, tüm sayfada "udp" veya "protokol" için eşleşme yoktur .
Alexander Gonchiy

@AlexanderGonchiy Docker çalıştırması için belgeleri mazur görmemek, fakat bahsettiği portları ortaya çıkarmak için genel format Kapsayıcı Ağ dokümantasyonunda ele alınmıştır.
Old Pro

2
Expose, yalnızca yayınlama yaptığınız gibi bir bağlantı noktası çifti değil, yalnızca bağlantı noktası / proto olmalıdır. Expose bağlantı noktasını yayınlamaz ve bağlantı noktasını yayınlamak için gerekli değildir, belgeleri.
BMitch
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.