在netcat中与Docker通信两个容器

在netcat中与Docker通信两个容器

问题描述:

我想在docker中通信两个容器,我正在使用netcat进行测试。首先,我创建了Dockefile:在netcat中与Docker通信两个容器

FROM ubuntu 
WORKDIR /root 
RUN apt-get update && apt-get install netcat iputils-ping -y 

和添加的图像:

docker build . -t ubuntu_netcat 

而且我已经创建了一个新的网络:

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 

首先容器(p C1)我监听端口8080 netcat的命令:

nc -vlk 8080 

我期待从第二容器(PC2执行与它通信):

nc -v pc1 8080 

但我刚刚得到一个连接被拒绝:

[email protected]:~# nc -v pc1 8080 
pc1.nettest [172.18.0.2] 8080 (?) : Connection refused 

我一直在看码头文件,但似乎都是正确的。事实上,我可以成功地在容器之间执行ping操作,以便它们可以连接另一个,但是我的端口出了问题。 ¿我做错了什么?

感谢

+0

Stack Overflow是用于编程和发展问题的站点。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://*.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。 – jww

它看起来像在Ubuntu这个版本的netcat不听像通常那样。您必须为端口指定-p(即使这些选项似乎具有端口作为位置选项)。

netcat监听命令应该是:

nc -vlkp 8080 
+0

你是对的!我以为这是码头配置问题,但问题是在netcat版本。谢谢! – Eidansoft

+0

使用netcat-openbsd避免此类问题和其他类似问题 –