首页 > 解决方案 > 为什么 Dockerfile 中不使用暴露端口?

问题描述

我是 Docker 新手。我刚学了1周。它确实是一个完美的部署工具。我也有一些坚持。我创建了 3 个容器,如下所示:

(1) 0.0.0.0:3000->3000/tcp

(2) 0.0.0.0:5000->3000/tcp

(3) 0.0.0.0:4000->5000/tcp

因此,容器的端口是我在“索引文件”中定义的端口(const port = 3000)。在这里我要问的是,为什么在Dockerfile中使用容器的端口而不是“EXPOSE”端口?

感谢您的任何解释。

标签: docker

解决方案


好吧,正如@emix 在评论中提到的阅读文档 中提到的那样

EXPOSE 指令通知 Docker 容器在运行时侦听指定的网络端口。可以指定端口监听 TCP 还是 UDP,如果不指定协议,则默认为 TCP。

它继续

EXPOSE 指令实际上并不发布端口。它充当构建映像的人和运行容器的人之间的一种文档类型,关于打算发布哪些端口。


推荐阅读