我试图通过启动以下命令来公开一个容器端口:
$ 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 container1P.S :集装箱IP地址是172.17.0.2。
我尝试从主机建立(测试) TCP连接到8080端口上的container1。
$ nc -p 8080 172.17.0.2 8080$ nc 172.17.0.2 8080$ exec < /dev/tcp/172.17.0.2/8080我所得到的是:端口正在使用,用于nc -p ...,而连接则拒绝。
发布于 2018-01-01 14:11:16
当使用-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;'https://stackoverflow.com/questions/48049767
复制相似问题