tot*_*to' 9 docker dockerfile docker-compose
我想知道EXPOSE在 Dockerfile 和 Docker-Compose 文件中使用有什么区别?
如果它在一个文件中而不是另一个文件中声明怎么办?或者如果它在两者中声明但具有不同的端口号怎么办?
EXPOSE 中Dockerfile只是一个元数据信息。当有人使用docker run -P需要公开的端口时,它会告诉 docker 。
在 compose 或 docker run 中使用它们是指定这些端口的一种动态方式。因此,总是应该在容器内的端口 80 上运行的像nginx或这样的图像apache将EXPOSE在 Dockerfile 本身中使用。
虽然具有可以使用环境变量控制的动态端口的图像将使用暴露在docker run或compose file
docker run -e UI_PORT=5556 --expose 5556 -P ....
Run Code Online (Sandbox Code Playgroud)