Docker에서 UDP 포트를 어떻게 게시합니까?


139

Docker 컨테이너에서 호스트 시스템으로 UDP 포트를 어떻게 전달합니까?

답변:


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

Mac에서 boot2docker를 실행중인 경우 boot2docker의 동일한 포트를 로컬 시스템으로 전달하십시오.

또한 EXPOSE 를 사용하여 컨테이너가 UDP를 수신해야 함을 문서화 할 수 있습니다 Dockerfile(EXPOSE는 포트를 게시하지 않습니다).

EXPOSE 8285/udp

컨테이너 문서에서 다루는 더 많은 Docker Networking 정보가있는 링크는 다음과 같습니다. 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"또는 "protocol"과 일치하는 것은 없습니다 .
Alexander Gonchiy

@AlexanderGonchiy docker run에 대한 설명서를 실용하는 것이 아니라 포트를 노출시키는 일반적인 형식은 컨테이너 네트워킹 설명서에 나와 있습니다.
Old Pro

2
노출은 작업 게시와 같은 포트 쌍이 아니라 포트 / 프로토 일이어야합니다. 그리고 노출은 포트를 게시하지 않으며 포트를 게시 할 필요가 없습니다.
BMitch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.