我无法在docker bash终端中执行netcat命令?

Nan*_*S V 7 bash ubuntu netcat docker

我是docker的初学者。
我已使用命令在ubuntu 18.04计算机中安装了docker-ce
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
Run Code Online (Sandbox Code Playgroud)

现在,我想在docker bash终端中运行netcat命令。

root@xxxyyyyzzzz12:/# nc -lp 1234 | nc -lp 4321
Run Code Online (Sandbox Code Playgroud)

一旦我从我的终端inovke以上命令。它给错误“ nc:找不到命令”

bash: nc: command not found
bash: nc: command not found
Run Code Online (Sandbox Code Playgroud)

后来,我进行了足够的研究,但从未找到针对此问题的任何官方Docker解决方案。

请任何人帮我在docker-ce中安装netcat。
我已经尝试过以下命令。

apt-get install netstat
apt-get install nc
Run Code Online (Sandbox Code Playgroud)

但是,没有运气。

nor*_*bjd 12

nc未默认安装在ubuntu:18.04映像上,因此您必须安装它:

apt-get update && apt-get install -y netcat
Run Code Online (Sandbox Code Playgroud)

apt-get update必须首先更新软件包列表(启动容器时,此列表为空)。完成后,您可以nc -lp 1234从容器运行。

要按预期测试所有作品,您可以:

  • 从外壳(在您的主机上)运行,类似于telnet container_ip 1234telnet localhost 1234(因为端口已转发)
  • 输入一些东西
  • 查看容器输出以查看您在主机shell中键入的内容