Как переслать UDP-порт от разработчика?

#docker #visual-studio-code #docker-compose #dockerfile #vscode-devcontainer

Вопрос:

Я пытаюсь использовать «Node.js amp; Mongo DB» разработчик от Microsoft (https://github.com/microsoft/vscode-dev-containers/tree/main/containers/javascript-node-mongo/.devcontainer) с моим udp-сервером, созданным в Nodejs.

Проблема заключается в следующем: Когда я пытаюсь перенаправить порт в примере devcontainer.json : "forwardPorts": [1117] .

Кажется, что он перенаправляет только 1117/tcp, когда я на самом деле хочу перенаправить 1117/udp.

Я пытаюсь сделать так, чтобы это работало для этого проекта : https://github.com/QuentinGruber/h1z1-server/blob/master/.devcontainer/devcontainer.json

Ответ №1:

Следуя документации, вы можете переслать протокол udp с помощью этой строки

 docker run -p 53160:53160/udp docker/getting-started
 

Поэтому попробуйте добавить это в свой файл конфигурации, и это должно сработать.

Ссылки: сеть докеров

Ответ №2:

Документация довольно расплывчата в отношении протоколов, используемых для открытых портов с forwardPorts тегом:

Переадресация

  • массив
  • Массив портов, которые должны быть перенаправлены из контейнера на локальную машину.

Из-за этого я бы рекомендовал попробовать использовать более старый appPort тег, потому что, когда я посмотрел здесь, там говорилось, что они используют синтаксис docker-compose, что означает, что вы можете указать порты и протокол следующим образом:

докер-сочинение:

 ports:
- "3000"
- "8921:5000"
 

разработчики.json:

 "appPort": [ 3000, "8921:5000" ]
 

И в вашем случае:

 "appPort": [ "1117:1117/udp" ]
 

Согласно документам, использование appPort тега также полезно, когда вы хотите получить доступ к приложению (или предоставить доступ к портам) не только localhost