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

时间:2018-09-29 15:51:07

标签: bash docker ubuntu netcat

我是docker的初学者。
我已使用命令
sudo apt install docker-ce在我的ubuntu 18.04计算机中安装了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
  

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

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

一旦我从我的终端上输入了上述命令。。它给出错误“ nc:找不到命令”

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

后来,我做了足够的研究,但从未找到任何官方的Docker解决方案来解决这个问题。

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

apt-get install netstat
apt-get install nc

但是,没有运气。

2 个答案:

答案 0 :(得分:5)

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

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

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

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

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

答案 1 :(得分:0)

不一定要使用ubuntu:18.04来学习本教程,例如,可以使用ubuntu:14.04,其中默认安装了nc

docker run --rm -ti -p 1234:1234 -p 4321:4321 --name echo-server ubuntu:14.04 bash

相关问题