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

:ここでは、コンテナのドキュメントで取り上げ、よりドッカーネットワーク情報とのリンクである https://docs.docker.com/config/containers/container-networking/ (コメントでプロ旧の礼儀)


3
(悪意のある人)正式なドキュメントには文字通りどこにもありません。"-p = []:コンテナーのポートまたはポートの範囲をホスト形式に公開します:ip:hostPort:containerPort | ip :: containerPort | hostPort:containerPort | containerPort"。公式の例では「-p 1234-1236:1234-1236 / tcp」について言及していますが、ページ全体で「udp」または「プロトコル」に一致するものはありません。
Alexander Gonchiy

@AlexanderGonchiy docker runのドキュメントを許すわけではありませんが、参照しているポートを公開するための一般的な形式は、コンテナネットワーキングのドキュメントで説明されています。
Old Pro

2
Exposeはポート/プロトである必要があり、作品を公開しているようなポートのペアではありません。そして、exposeはポートを公開せず、ポートを公開する必要もありません。それはドキュメントです。
BMitch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.