在使用Docker时,我们从一个基本映像开始。我们启动它,创建更改,这些更改被保存在图层中形成另一个图像。
因此,最终我为我的PostgreSQL实例和我的web应用程序提供了一个图像,对这些图像的更改将持续保存。
什么是容器?
在使用Docker时,我们从一个基本映像开始。我们启动它,创建更改,这些更改被保存在图层中形成另一个图像。
因此,最终我为我的PostgreSQL实例和我的web应用程序提供了一个图像,对这些图像的更改将持续保存。
什么是容器?
当前回答
Docker容器正在运行一个映像的实例。你可以将图像与程序关联起来,将容器与进程关联起来:)
其他回答
Docker的核心概念是使创建“机器”变得容易,在这种情况下,机器可以被认为是容器。容器有助于重用性,允许您轻松地创建和删除容器。
图像描述了容器在每个时间点上的状态。所以基本的工作流程是:
创建映像 启动容器 对容器进行更改 将容器重新保存为图像
对于一个虚拟的编程类比,你可以认为Docker有一个抽象的ImageFactory,它保存着它们来自存储的ImageFactory。
然后,一旦你想从ImageFactory中创建一个应用程序,你就有了一个新的容器,你可以随心所欲地修改它。DotNetImageFactory将是不可变的,因为它作为一个抽象工厂类,在那里它只交付您想要的实例。
IContainer newDotNetApp = ImageFactory.DotNetImageFactory.CreateNew(appOptions);
newDotNetApp.ChangeDescription("I am making changes on this instance");
newDotNetApp.Run();
就像对象是面向对象编程语言中类的实例一样,Docker容器也是Docker映像的实例。
Docker容器正在运行一个映像的实例。你可以将图像与程序关联起来,将容器与进程关联起来:)
也许解释一下整个工作流程会有帮助。
一切都从Dockerfile开始。Dockerfile是映像的源代码。
创建Dockerfile之后,构建它来创建容器的映像。图像只是Dockerfile“源代码”的“编译版本”。
一旦有了容器的映像,就应该使用注册表重新分发它。注册表类似于Git存储库——您可以推送和拉出图像。
接下来,您可以使用映像来运行容器。在许多方面,运行中的容器与虚拟机非常相似(但没有管理程序)。