Netcat не работает на моем контейнере Ubuntu Docker? - PullRequest
0 голосов
/ 03 ноября 2019

Я работаю над распределенной вычислительной системой, которая пытается запустить рабочие узлы при запуске для автономного экземпляра, для этого требуется netcat. Системе требуется операционная система Linux, но у меня есть макросы, поэтому я пытаюсь собрать и запустить все через докер-контейнер, который работает в Ubuntu. Я медленно пытаюсь понять, как все это работает, и я чувствую, что в целом было бы замечательно, если бы эта система была докернизирована, так как кажется, что она будет иметь минимальный или даже незначительный удар по производительности из того, что я исследовал.

Тем не менее, у меня возникли проблемы с работой Netcat. Начальный скрипт для запуска имеет строку, которая запускает команду netcat следующим образом:

nc -zw3 localhost 22

Каждый раз, когда я не могу подключиться к IP localhost: XXXX (порт, который должен прослушивать рабочий узел), что означаетпопытка прослушивания через netcat не удалась. Я попробовал несколько различных решений в Интернете, чтобы посмотреть, смогу ли я это исправить. Я перечислил эти попытки ниже.

Контекст

Как я запускаю Docker:

docker-machine start default

docker-machine env default

eval $(docker-machine env default)

И я уже какое-то время создалсам контейнер:

alias create_linux_container ="docker run \
  --name name_of_project \
  -e HOST_IP=$(ifconfig en0 | awk '/ *inet /{print $2}') \
  -v /Users/myname/Desktop/docker:/name_of_project \
  -t -i \
  ubuntu /bin/bash"

Итак, обычно, когда я снова запускаю контейнер, я просто запускаю:

alias linux_container ="docker exec -it name_of_project /bin/bash"

Версия netcat:

netcat version: v1.10-41.1 

Версия ОС для контейнера:

NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Попытки

Я пытался заменить localhost на IP-адрес, полученный из обоих:

echo $(ifconfig en0 | awk '/ *inet /{print $2}')

и

docker inspect ${CONTAINER_ID} | grep IPAddress

Я также попытался полностью заменить команды на:

nc -zw3 -l -p 22

Но это просто время ожидания.

...