dockerfile和compose“expose”之间的区别

时间:2017-08-20 13:20:40

标签: docker docker-compose dockerfile

我想知道使用

之间有什么区别
EXPOSE
在Dockerfile和Docker-Compose文件中

?如果它在文件中声明而在另一个文件中声明怎么办?或者如果它在两者上声明但具有不同的值(端口号)会怎么样?

感谢

1 个答案:

答案 0 :(得分:4)

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

在compose或docker run中使用它们是指定这些端口的动态方式。因此,像nginxapache这样的图像总是应该在容器内的端口80上运行,它将在Dockerfile本身中使用EXPOSE

虽然具有可使用环境变量控制的动态端口的图像将在docker runcompose file

中使用公开
docker run -e UI_PORT=5556 --expose 5556 -P ....