【问题标题】:Communicate two containers in docker with netcatdocker中两个容器用netcat通信
【发布时间】:2017-06-22 14:13:30
【问题描述】:

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

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

在第一个容器 (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,这样它们就可以相互连接,但是我的端口有问题。 ¿ 我做错了什么?

谢谢

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • 这帮助我解决了一个docker network 问题以链接两个 Docker 容器。您是按照一些博客提出这个例子的,还是在这里提出自己的?

标签: networking docker port ping netcat


【解决方案1】:

看起来这个版本的 Ubuntu 上的 netcat 不像平常那​​样听。您必须为端口指定-p(即使选项似乎将端口作为位置选项)。

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

nc -vlkp 8080

【讨论】:

  • 你是对的!我以为是 docker 配置问题,但问题出在 netcat 版本上。谢谢!
  • 使用 netcat-openbsd 避免这个和其他类似的问题
猜你喜欢
  • 2020-10-10
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 2018-07-15
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多