Docker如何在特定端口(8080)上建立到容器的TCP连接?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker如何在特定端口(8080)上建立到容器的TCP连接?相关的知识,希望对你有一定的参考价值。
我试图通过启动以下命令来公开容器端口:
$ docker run -p 8080:8080 --name container1 -d ubuntu /bin/bash -c 'while true;
do echo Hello $HOSTNAME | nc -l 8080; done;'
由于$ docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cd601ae9c7a ubuntu "/bin/bash -c 'while…" 2 seconds ago Up 1 second 0.0.0.0:8080->8080/tcp container1
P.S:容器IP地址是172.17.0.2。 我试图从主机建立(测试)与8080端口上的container1的TCP连接
$ nc -p 8080 172.17.0.2 8080
$ nc 172.17.0.2 8080
$ exec < /dev/tcp/172.17.0.2/8080
所有我得到的是:nc -p ...
使用的端口和其余的连接被拒绝。
答案
使用-p 8080:8080
时,您将容器端口8080
映射到主机端口8080
。因此,您需要使用nc localhost 8080
从主机访问容器。
顺便说一句:最新的ubuntu图片不包含nc
。你可能想尝试ubuntu:trusty
。
docker run -p 8080:8080 --name container1 -d ubuntu:trusty /bin/bash -c 'while true; do echo Hello $HOSTNAME | nc -l 8080; done;'
以上是关于Docker如何在特定端口(8080)上建立到容器的TCP连接?的主要内容,如果未能解决你的问题,请参考以下文章