В чем разница между привязкой порта на уже открытом порту и закрытым портом в Docker? - PullRequest
0 голосов
/ 28 сентября 2019

Запустите контейнер busybox следующим образом:

docker container run -it --rm -p 5000:5000 busybox

и на хост-компьютере попробуйте прослушать порт 5000 (попробуйте netcat, если у вас нет nc):

nc -l -p 5000
Error: Couldn't setup listening socket (err=-3)

Теперь измените последовательность, как при первом запуске прослушивания на хосте:

nc -l -p 5000

, а затем запустите ваш контейнер:

docker container run -it --rm -p 5000:5000 busybox

Почему хост все еще прослушивает порт 5000 иКонтейнер был в состоянии начать?Почему хост не разрешил прослушивание порта 5000 в первой ситуации?

Я даже могу подключиться к хост-машине из контейнера с локальным IP-адресом хоста (192.168.0.10 в моем случае):

/ # telnet 192.168.0.10 5000
Connected to 192.168.0.10

Почему я не могу сначала запустить контейнер с привязкой порта, а начать слушать позже?

...