Wie veröffentliche ich einen UDP-Port auf Docker?

139

Wie leite ich einen UDP-Port von meinem Docker-Container an den Host-Computer weiter?

Nick Woodhams
quelle

Antworten:

220

Verwenden Sie das Flag -p und fügen Sie /udpder Portnummer das Suffix hinzu .

-p 53160:53160/udp

Voller Befehl

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

Wenn Sie boot2docker auf einem Mac ausführen, müssen Sie dieselben Ports auf boot2docker an Ihren lokalen Computer weiterleiten.

Sie können auch SETZEN einen Port in a Dockerfile:

EXPOSE 8285/udp

Hier ist ein Link mit weiteren Informationen zu Docker Networking, die in den Container-Dokumenten behandelt werden: https://docs.docker.com/config/containers/container-networking/ (mit freundlicher Genehmigung von Old Pro in den Kommentaren)

Nick Woodhams
quelle
3
(schimpfen) Buchstäblich nirgends in der offiziellen Dokumentation, wow. "-p = []: Veröffentlichen Sie den Port eines Containers oder eine Reihe von Ports im Host-Format: ip: hostPort: containerPort | ip :: containerPort | hostPort: containerPort | containerPort". Obwohl im offiziellen Beispiel "-p 1234-1236: 1234-1236 / tcp" erwähnt wird, gibt es auf der gesamten Seite keine Übereinstimmungen für "udp" oder "protocol" .
Alexander Gonchiy
@AlexanderGonchiy Um die Dokumentation für den Docker-Lauf nicht zu entschuldigen, wird das allgemeine Format für die Offenlegung der Ports, auf die es sich bezieht, in der Dokumentation zum Containernetzwerk behandelt .
Old Pro
1
Expose sollte nur der Port / Proto sein, kein Port-Paar, wie Sie es bei der Arbeit veröffentlichen. Und exponieren veröffentlicht den Port nicht und wird nicht benötigt, um den Port zu veröffentlichen, es ist Dokumentation.
BMitch