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