Назначить порт контейнера для локального порта, кажется, работает неправильно?
Недавно я создал контейнер для своего проекта, а также попытался назначить его порт (9002, указанный в Dockerfile) для порта хоста, добавив:
-p 9003:9002 (i attached it to port 9003 of the host )
в "Docker run", когда я сгенерировал новый контейнер. Затем я написал серверную программу, которая запускается внутри контейнера, для использования порта 9002, и я полагал, что данные, отправленные из моего контейнера через порт 9002, каким-то образом выйдут из хост-компьютера через порт 9003.
Однако клиентская программа, запущенная на другом компьютере, не получала ничего от порта 9003, а вместо 9002. Затем я понял, что мне не нужно точно назначать порт в первую очередь, просто назначьте порт контейнера для любого желаемого порта хоста, и я могу отправлять данные на любой порт моего хост-компьютера.
Итак, что я не понял здесь о назначающей команде выше?
я думал, без назначения порта, контейнер не может общаться за пределами своей сети?
1 ответ
Да , вы абсолютно правы без назначения порта, контейнер не может общаться вне сети.
для другой проблемы, если вы можете поделиться dockerfile, то можете получить некоторую идею, получили вашу первую проблему, но без ответа.