dockerfile之间的区别和撰写“揭露”

我想知道使用什么区别

EXPOSE 

在Dockerfile和Docker-Compose文件中? 如果在文件中声明而不在其他文件中呢? 或者,如果它被声明在两个不同的值(端口号)?

谢谢

在Dockerfile中Dockerfile只是一个元数据信息。 这告诉docker当有人使用docker run -P哪些端口需要被暴露。

在撰写或docker运行中使用它们是指定这些端口的dynamic方法。 所以像nginxapache这样的图像总是应该在容器内部的端口80上运行, EXPOSE在Dockerfile中使用EXPOSE

而具有可以使用环境variables控制的dynamic端口的图像将在docker runcompose file使用公开

 docker run -e UI_PORT=5556 --expose 5556 -P ....