Что такое порт 49160 в docker -run? - PullRequest
2 голосов
/ 18 января 2020

Я следую этому учебнику , чтобы настроить docker для моего node.js rest api, и в учебнике есть эта строка:

docker run -p 49160:8080 -d <your username>/node-web-app

И это описание:

Флаг -p перенаправляет порт publi c на частный порт внутри контейнера. Запустите ранее созданный образ:

Из описания я знаю, что порт 49160 является публичным c портом , а 8080 является частным портом, Так как я выставляю порт 5001 в своем приложении nodejs, я думаю, что я запускаю:

docker run -p 49160:5001 -d <your username>/node-web-app

Но что такое порт publi c? Почему это "49160"?

Ответы [ 2 ]

2 голосов
/ 18 января 2020

В вашем примере порт 8080 ведет к какому-либо серверу (возможно, веб-серверу / узлу), расположенному внутри вашего Docker контейнера. Внешний порт (хост, с которым вы работаете) - 49160. Параметр Docker с именем -p подключает внутренний порт 8080 к внешнему порту 49160. Если вы сейчас откроете браузер в своей хост-системе и нажмете на URL http://localhost:49160, вы по сути получите доступ к порту 8080 внутри контейнера.

Порт 8080 обычно используется для веб-серверов. Это не обязательно.

Порт 49160 - это просто какой-то порт, который вы или автор учебного пособия решили взять в качестве примера.

Если в контейнере есть сервер, прослушивающий порт 5001 он не будет доступен в вашей настройке. Если вы хотите сделать его доступным, вы можете адаптировать следующую команду:

docker run -p 49160:8080 -p 49159:5001 -d <your username>/node-web-app
2 голосов
/ 18 января 2020

Это может быть что угодно. Учебник только что использовал случайный порт. Вы можете изменить это как хотите. Затем вы можете получить доступ к вашему узлу-веб-приложению, работающему внутри контейнера, через порт 5001 по адресу localhost: 49160 с вашего хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...