docker-compose.yml上的“ports”与Dockerfile上的EXPOSE具有相同的效果吗?

时间:2016-02-22 08:22:18

标签: docker

在docker-compose.yml上声明:

ports:
 - "3306:3306"

并在Dockerfile上:

EXPOSE 3306

有同样的效果吗?

1 个答案:

答案 0 :(得分:25)

否:EXPOSEEXPORT不存在)仅打开容器中的端口,使其可由其他容器访问。

"3306:3306"将在主机上发布端口,使主机可以访问相同的端口。

请参阅Dockerfile EXPOSE

  

EXPOSE指令通知Docker容器在运行时侦听指定的网络端口   EXPOSE不会使主机可以访问容器的端口。为此,您必须使用-p标志来发布一系列端口。

这就是docker-compose.yml ports部分的作用。它将容器端口映射到主机。