Come faccio a pubblicare una porta UDP su Docker?


139

Come inoltro una porta UDP dal mio contenitore Docker al computer host?

Risposte:


220

Utilizzare il flag -p e aggiungere il /udpsuffisso al numero di porta.

-p 53160:53160/udp

Comando completo

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

Se stai eseguendo boot2docker su Mac, assicurati di inoltrare le stesse porte su boot2docker al tuo computer locale.

Puoi anche documentare che il tuo container deve ricevere UDP usando EXPOSE in The Dockerfile(EXPOSE non pubblica la porta):

EXPOSE 8285/udp

Ecco un link con altre informazioni sulla rete Docker coperte nei documenti del contenitore: https://docs.docker.com/config/containers/container-networking/ (Per gentile concessione di Old Pro nei commenti)


3
(rant) Letteralmente da nessuna parte nella documentazione ufficiale, wow. "-p = []: pubblica una porta del container o un intervallo di porte nel formato host: ip: hostPort: containerPort | ip :: containerPort | hostPort: containerPort | containerPort". Sebbene l'esempio ufficiale menzioni "-p 1234-1236: 1234-1236 / tcp", non ci sono corrispondenze per "udp" o "protocollo" su tutta la pagina .
Alexander Gonchiy,

@AlexanderGonchiy Non scusare la documentazione per l'esecuzione della finestra mobile, ma il formato generale per esporre le porte a cui fa riferimento è coperto nella documentazione relativa alla rete di contenitori .
Old Pro

2
Esporre dovrebbe essere solo la porta / proto, non una coppia di porte come se avessi lavoro da pubblicare. Ed esporre non pubblica la porta e non è necessario per pubblicare la porta, è documentazione.
BMitch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.