使用netcat在docker中传递两个容器

Eid*_*oft 5 port networking ping netcat docker

我想在docker中传达两个容器,我正在使用netcat进行测试.首先我创建了Dockefile:

FROM ubuntu
WORKDIR /root
RUN apt-get update && apt-get install netcat iputils-ping -y
Run Code Online (Sandbox Code Playgroud)

并添加了图像:

docker build . -t ubuntu_netcat
Run Code Online (Sandbox Code Playgroud)

我也创建了一个新网络:

docker network create --driver bridge nettest
Run Code Online (Sandbox Code Playgroud)

然后我运行两个容器:

docker run --net=nettest --expose=8080 -it --name pc1 ubuntu_netcat
docker run --net=nettest --link=pc1 -it --name pc2 ubuntu_netcat
Run Code Online (Sandbox Code Playgroud)

在第一个容器(pc1)我用netcat命令在端口8080上监听:

nc -vlk 8080
Run Code Online (Sandbox Code Playgroud)

我期望从执行的第二个容器(pc2)与它进行通信:

nc -v pc1 8080
Run Code Online (Sandbox Code Playgroud)

但我只是拒绝连接:

root@c592b2015439:~# nc -v pc1 8080
pc1.nettest [172.18.0.2] 8080 (?) : Connection refused
Run Code Online (Sandbox Code Playgroud)

我一直在看码头文件,但似乎都是正确的.事实上,我可以成功地在容器之间执行ping,因此它们可以到达另一个,但是我的端口有问题.我究竟做错了什么?

谢谢

And*_*inn 12

看起来这个版本的netcatUbuntu不像通常那样听.您必须-p为端口指定(即使选项看起来将端口作为位置选项).

你的netcat监听器命令应该是:

nc -vlkp 8080
Run Code Online (Sandbox Code Playgroud)