docker-compose.yml上的“ports”与Dockerfile上的EXPOSE有相同的效果吗?
在docker-compose.yml上声明:
ports: - "3306:3306"
和Dockerfile上:
EXPOSE 3306
有相同的效果?
否: EXPOSE
( EXPORT
不存在)仅打开容器中的端口,使其可以被其他容器访问。
"3306:3306"
将在主机上发布该端口,使得主机可以访问相同的端口。
请参阅Dockerfile EXPOSE
:
EXPOSE
指令通知Docker在运行时侦听指定的networking端口。
EXPOSE
不会使容器的端口可以被主机访问。 为此,您必须使用-p
标志发布一系列端口。
这是docker-compose.yml
端口部分的作用。 它将容器端口映射到主机。