Я не могу выполнить команду netcat в терминале Docker Bash? - PullRequest
0 голосов
/ 29 сентября 2018

Я новичок в докере.
Я установил docker-ce на мою машину с Ubuntu 18.04 с помощью команды
sudo apt install docker-ce
В рамках учебного курса я пытаюсь установить соединение между контейнерами, выполняя серию следующих команд.

Команда ниже включит порты 1234/4321 для прослушивания трафика внутри / снаружи контейнеров, которые я собираюсь использовать.

root@ghost-SVE9999CNS:/home/ghost# docker run --rm -ti -p 1234:1234 -p 4321:4321 --name echo-server ubuntu:18.04 bash

Теперь,Я хотел запускать команды netcat в терминале Docker Bash.

root@xxxyyyyzzzz12:/# nc -lp 1234 | nc -lp 4321

Как только я ввожу указанную выше команду из моего терминала. Она выдает ошибки "nc: command not found"

bash: nc: command not found
bash: nc: command not found

Позже я провел достаточное количество исследований и так и не нашел ни одного официального решения для докера для этой проблемы.

Пожалуйста, кто-нибудь может мне помочь с установкой netcat в docker-ce.
Я пробовал команды, как показано ниже.

apt-get install netstat
apt-get install nc

Но не повезло.

1 Ответ

0 голосов
/ 29 сентября 2018

nc не устанавливается по умолчанию на ubuntu:18.04 образе, поэтому вы должны установить его:

apt-get update && apt-get install -y netcat

apt-get update необходимо для первого обновления списка пакетов (при запуске контейнераэтот список пуст).После этого вы можете запустить nc -lp 1234 из контейнера.

Чтобы проверить все работы, как вы ожидали, вы можете:

  • запустить из оболочки (на вашем хосте) что-тонапример telnet container_ip 1234 или telnet localhost 1234 (так как порты были переадресованы)
  • введите что-то
  • посмотрите на вывод контейнера, чтобы увидеть, что вы ввели в вашей оболочке хоста
...