首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker如何建立与特定端口(8080)上的容器的TCP连接?

Docker如何建立与特定端口(8080)上的容器的TCP连接?
EN

Stack Overflow用户
提问于 2018-01-01 12:45:52
回答 1查看 4.9K关注 0票数 1

我试图通过启动以下命令来公开一个容器端口:

代码语言:javascript
复制
$ docker run -p 8080:8080 --name container1 -d ubuntu /bin/bash -c 'while true;\
do echo Hello $HOSTNAME | nc -l 8080; done;'

作为$ docker ps的结果:

代码语言:javascript
复制
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。

我尝试从主机建立(测试) 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 ...,而连接则拒绝

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-01 14:11:16

当使用-p 8080:8080时,您将容器端口8080映射到宿主端口8080。因此,您需要使用nc localhost 8080从主机访问容器。

顺便说一句:最新的ubuntu映像不包含nc。你可能想试试ubuntu:trusty

代码语言:javascript
复制
docker run -p 8080:8080 --name container1 -d ubuntu:trusty /bin/bash -c 'while true; do echo Hello $HOSTNAME | nc -l 8080; done;'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48049767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档