Як опублікувати порт 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 в розділі 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" або "протоколу" .
Олександр Гончій

@AlexanderGonchiy Не виправдовує документацію для запуску докера, але загальний формат викриття портів, на який вона посилається, міститься в документації на контейнерну мережу .
Старий Про

2
Виставляти слід лише порт / прото, а не пару портів, як у вас є публікація роботи. І експонація не публікує порт і не потрібна для публікації порту, це документація.
BMitch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.