我正在尝试使用telnet建立从一个Docker容器到另一个Docker容器的连接,但是我始终收到“ telnet:无法连接到远程主机:连接被拒绝”错误。
到目前为止我已经执行的命令:
docker run -dit --name nA --net mynet -p 8081:80 -p 1001:443 test_image:1.0 bash
docker run -dit --name nB --net mynet -p 8080:80 -p 1000:443 test_image:1.0 bash
这是docker inspect mynet的输出
"Containers": {
"1df3f3821710b3f8103fe79e338d709a93baf301dafc015bb5f1e162bca206de": {
"Name": "nB",
"EndpointID": "bf7cbc2e60ddb99cd3b8bd416b066787840ced6de74eb1961b4f9663a28fdd80",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
},
"7aea617e121eda0884ae7ce46e1534800af2d30822f3899f69c4165a40c1370d": {
"Name": "nA",
"EndpointID": "7a60026517ff0b1b337a5af9ccf8d7dc9c896606196bcb1bafe537e6fddaa8dc",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
Ping完美运行:
root@1df3f3821710:/# ping nA
PING nA (172.19.0.2) 56(84) bytes of data.
64 bytes from nA.mynet (172.19.0.2): icmp_seq=1 ttl=64 time=0.141 ms
64 bytes from nA.mynet (172.19.0.2): icmp_seq=2 ttl=64 time=0.261 ms
然后,我尝试使用已发布的端口从一个容器连接到另一个容器。
root@1df3f3821710:/# telnet nA 8081
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 1001
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 80
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
root@1df3f3821710:/# telnet nA 443
Trying 172.19.0.2...
telnet: Unable to connect to remote host: Connection refused
从另一个容器连接时也会发生同样的情况。
root@7aea617e121e:/# telnet nB 8080
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 80
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 1000
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
root@7aea617e121e:/# telnet nB 443
Trying 172.19.0.3...
telnet: Unable to connect to remote host: Connection refused
这是什么问题?
Docker版本:17.09.0 操作系统:Mac和Windows
答案 0 :(得分:0)
已发布的端口可从主机获取,它们不用于容器间通信。
您将覆盖为映像定义的任何命令,然后启动bash,因此这是在容器上运行的唯一进程,并且容器内的应用程序根本没有启动。
您打算做的是以下
Error returned from build: 1 "/opt/go/pkg/tool/linux_amd64/link: signal: killed
然后连接到运行中的容器
docker run -d --name nA --net mynet -p 8081:80 -p 1001:443 test_image:1.0
docker run -d --name nB --net mynet -p 8080:80 -p 1000:443 test_image:1.0