ฉันจะเผยแพร่พอร์ต UDP บน Docker ได้อย่างไร


คำตอบ:


220

ใช้แฟล็ก -p และเพิ่ม/udpคำต่อท้ายให้กับหมายเลขพอร์ต

-p 53160:53160/udp

คำสั่งแบบเต็ม

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

หากคุณใช้ boot2docker บน Mac อย่าลืมส่งต่อพอร์ตเดียวกันบน boot2docker ไปยังเครื่องท้องถิ่นของคุณ

นอกจากนี้คุณยังสามารถบันทึกว่าคอนเทนเนอร์ของคุณต้องรับ UDP โดยใช้EXPOSEใน The Dockerfile(EXPOSE ไม่เผยแพร่พอร์ต):

EXPOSE 8285/udp

นี่คือลิงค์ที่มีข้อมูลระบบเครือข่ายนักเทียบท่าเพิ่มเติมครอบคลุมใน container docs: https://docs.docker.com/config/containers/container-networking/ (ความอนุเคราะห์จาก Old Pro ในความคิดเห็น)


3
(พูดจาโผงผาง) แท้จริงไม่มีในเอกสารอย่างเป็นทางการว้า "-p = []: ประกาศพอร์ตของคอนเทนเนอร์หรือช่วงของพอร์ตไปยังรูปแบบโฮสต์: ip: hostPort: containerPort | ip :: containerPort | hostPort: containerPort | containerPort" แม้ว่าตัวอย่างอย่างเป็นทางการระบุว่า "-p 1234-1236: 1234-1236 / tcp" มีการแข่งขันสำหรับ "UDP" หรือ "โปรโตคอล" ในทั้งไม่มีหน้า
Alexander Gonchiy

@AlexanderGonchiy ไม่ต้องอ้างเอกสารประกอบสำหรับการทำงานของนักเทียบท่า แต่รูปแบบทั่วไปสำหรับการเปิดเผยพอร์ตที่อ้างถึงนั้นมีการกล่าวถึงในเอกสารระบบเครือข่ายของคอนเทนเนอร์
โปรเก่า

2
การเปิดเผยควรเป็นพอร์ต / โปรโตไม่ใช่คู่ของพอร์ตเหมือนกับที่คุณมีงานเผยแพร่ และการเปิดเผยไม่ได้เผยแพร่พอร์ตและไม่จำเป็นต้องเผยแพร่พอร์ตมันเป็นเอกสารประกอบ
BMitch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.