Làm cách nào để xuất bản Cổng UDP trên Docker?


139

Làm cách nào để chuyển tiếp cổng UDP từ bộ chứa Docker của tôi sang máy chủ?

Câu trả lời:


220

Sử dụng cờ -p và thêm /udphậu tố vào số cổng.

-p 53160:53160/udp

Toàn lệnh

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

Nếu bạn đang chạy boot2docker trên Mac, hãy nhớ chuyển tiếp các cổng tương tự trên boot2docker sang máy cục bộ của bạn.

Bạn cũng có thể ghi lại rằng bộ chứa của bạn cần nhận UDP bằng cách sử dụng EXPOSE trong Dockerfile(EXPOSE không xuất bản cổng):

EXPOSE 8285/udp

Đây là một liên kết với nhiều thông tin hơn về Docker Network được đề cập trong các tài liệu chứa: https://docs.docker.com/config/containers/container-networking/ (Courtesy of Old Pro trong các bình luận)


3
(rant) Nghĩa đen không có trong tài liệu chính thức, wow. "-P = []: Xuất bản một cổng container hoặc một loạt các cổng sang định dạng máy chủ: ip: hostPort: containerPort | ip :: containerPort | hostPort: containerPort | containerPort". Mặc dù ví dụ chính thức đề cập đến "-p 1234-1236: 1234-1236 / tcp", không có kết quả khớp nào cho "udp" hoặc "giao thức" trên toàn bộ trang .
Alexander Gonchiy

@AlexanderGonchiy Không xin lỗi tài liệu cho việc chạy docker, nhưng định dạng chung để lộ các cổng mà nó đề cập đến được đề cập trong tài liệu Mạng Container .
Old Pro

2
Chỉ nên là cổng / proto, không phải là một cặp cổng như bạn đã xuất bản công việc. Và phơi bày không xuất bản cổng và không cần thiết để xuất bản cổng, đó là tài liệu.
BMitch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.