我想知道在 Dockerfile 和 Docker-Compose 文件中使用
EXPOSE
的区别是什么?如果在其中一个文件中声明而在另一个文件中没有,或者在两个文件中都声明但端口号不同会怎样?EXPOSE
的区别是什么?如果在其中一个文件中声明而在另一个文件中没有,或者在两个文件中都声明但端口号不同会怎样?Dockerfile
中使用的 EXPOSE 只是元数据信息。它告诉 Docker 在某人使用 docker run -P
时需要暴露哪些端口。nginx
或 apache
这样总是应该在容器内部运行在 80 端口上的镜像将在 Dockerfile 中使用 EXPOSE
。docker run
或 compose 文件
中使用 expose。docker run -e UI_PORT=5556 --expose 5556 -P ....