使用 netcat 通信 docker 中的两个容器
Communicate two containers in docker with netcat
我想在 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
我想在 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