通过netcat与docker通信两个容器
我想在Docker中传达两个容器,我正在使用netcat进行testing。 首先我创build了Dockefile:
FROM ubuntu WORKDIR /root RUN apt-get update && apt-get install netcat iputils-ping -y
并添加了图像:
docker build . -t ubuntu_netcat
我也创build了一个新的networking:
docker network create --driver bridge nettest
然后我运行两个容器:
docker run --net=nettest --expose=8080 -it --name pc1 ubuntu_netcat docker run --net=nettest --link=pc1 -it --name pc2 ubuntu_netcat
在第一个容器(PC1)我用netcat命令在端口8080上监听:
nc -vlk 8080
我期望从第二个容器(pc2)执行以下操作来与它进行通信:
nc -v pc1 8080
但我刚刚得到一个连接拒绝:
root@c592b2015439:~# nc -v pc1 8080 pc1.nettest [172.18.0.2] 8080 (?) : Connection refused
我一直在看docker文件,但似乎都是正确的。 事实上,我可以成功地在容器之间执行ping操作,所以它们可以连接到另外一个,但是我的端口有问题。 我究竟做错了什么?
谢谢
它看起来像Ubuntu上的这个版本的netcat
不像通常那样听。 您必须为端口指定-p
(即使这些选项似乎具有端口作为位置选项)。
您的netcat
监听器命令应该是:
nc -vlkp 8080