gpt4 book ai didi

networking - 在 docker 中使用 netcat 通信两个容器

转载 作者:行者123 更新时间:2023-12-04 16:50:57 24 4
gpt4 key购买 nike

我想在 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 操作,因此它们可以相互访问,但是我的端口有问题。
我究竟做错了什么?

谢谢

最佳答案

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

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

nc -vlkp 8080

关于networking - 在 docker 中使用 netcat 通信两个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com