dockerfile 与 docker-compose的区别是什么?

发布于 2022-09-05 02:31:02 字数 66 浏览 14 评论 0

docker-compose是编排镜像, 那么docker-compose是不是可以做Dockerfile的能做的事?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

鲜血染红嫁衣 2022-09-12 02:31:02

我所理解的docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。

而dockerfile的作用是从无到有的构建镜像。

两个完全不是一码事

等风也等你 2022-09-12 02:31:02

先简单理解 docker 的使用过程,它分为镜像构建与容器启动。

镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。

容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。

而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。

简单总结:

  1. dockerfile: 构建镜像;

  2. docker run: 启动容器;

  3. docker-compose: 启动服务;

原来是傀儡 2022-09-12 02:31:02

感觉docker-compose 是 docker 的一个扩展功能,
dockerfile可以让你配置运行一个容器,但是docker-compose可以让你一条命令运行多个配置的容器

花开半夏魅人心 2022-09-12 02:31:02

Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image ,在 docker-compose 里也可以用来实时 build
docker-compose.yml - 为 docker-compose 准备的脚本,可以同时管理多个 container ,包括他们之间的关系、用官方 image 还是自己 build 、各种网络端口定义、储存空间定义等

素手挽清风 2022-09-12 02:31:02

顾名思义:

dockerfile,是构建单个docker images的文件,描述了一个docker images需要执行包含的指令。

docker-compose ,docker多images组成指令,也就是把多个docker images构建指令编排进一个文件,docker-compose build 会进行docker-compose中指令编译成多个images,docker-compose中也可以使用dockerfile作为子服务的build文件。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文