Запустите контейнер 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
Почему я не могу сначала запустить контейнер с привязкой порта, а начать слушать позже?