【发布时间】:2019-02-24 13:04:10
【问题描述】:
最近,我为我的项目创建了一个容器,并尝试通过添加以下内容将其端口(9002,在 Dockerfile 中指定)分配给主机端口:
-p 9003:9002 (i attached it to port 9003 of the host )
当我生成新容器时,在“Docker 运行”中。然后我编写了一个在容器内运行的服务器程序,以使用端口 9002,我相信通过端口 9002 从我的容器发出的数据会以某种方式通过端口 9003 从主机 PC 中传出。
但是,在其他 pc 上运行的客户端程序没有从端口 9003 而是从 9002 接收任何内容。然后我意识到我不需要一开始就精确分配端口,只需将容器端口分配给我想要的任何主机端口,我就可以将数据发送到主机 PC 的任何端口。
那么我在这里对上面的分配命令有什么误解?
我想如果不分配端口,容器就不能在其网络之外进行通信?
【问题讨论】:
-
当 2 个容器在同一个 docker 网络中运行时,它们不需要将它们的端口映射到主机上,它们可以在网络内进行通信。
-
@lvthillo 我上面的问题是关于连接到 Docker 网络之外的。