为什么Docker必须从Dockerfile创建一个镜像,然后从镜像创建一个容器,而不是直接从Dockerfile创建一个容器?

5 浏览
0 Comments

为什么Docker必须从Dockerfile创建一个镜像,然后从镜像创建一个容器,而不是直接从Dockerfile创建一个容器?

为什么 Docker 必须先从 Dockerfile 创建映像,然后从映像创建容器,而不是直接从 Dockerfile 创建容器?

先从 Dockerfile 创建映像,然后从该映像创建容器的目的/好处是什么?

-----编辑-----

这个问题 “Docker 镜像和容器的区别是什么?” 不回答我的问题。

我的问题是:为什么我们需要从一个映像中创建容器,而不是直接从 Dockerfile 创建容器?先从 Dockerfile 创建映像,然后从该映像创建容器的目的/好处是什么?

admin 更改状态以发布 2023年5月21日
0
0 Comments

图像和容器是两个不同的概念。

基本上,镜像就像是一个文件系统的快照,以及一些元数据。

容器是实际运行的多个进程之一(基于镜像)。一旦进程结束,您的容器就不存在了(确切地说,停止了)。

您可以将镜像视为您将运行容器的基础。

因此,您的 Dockerfile 将创建一个镜像(它是静态的),您可以在本地存储它或将其推送到存储库中以便以后使用。

容器不能被“存储”,因为它是一个“活的”对象。

0
0 Comments
  • Dockerfile 是创建镜像的配方
  • 镜像是虚拟文件系统
  • 容器是在主机上运行的进程

您不希望每个主机都基于配方构建自己的镜像。对于某些主机来说,直接下载镜像并与之一起工作更加容易。

创建镜像可能非常昂贵。我有复杂的 Dockerfile,可能需要数小时构建,可能下载 50GB 的数据,但仍然只能创建一个 200 MB 的镜像,可以发送到不同的主机。

从现有镜像中启动容器非常便宜。

如果您只有 Dockerfile 来启动镜像容器,则整个工作流程将变得非常繁琐。

0