使用Docker时,我们从一个基础镜像开始。我们启动它,进行更改,这些更改会被保存在不同的层中,形成另一个镜像。
因此,我最终拥有一个用于PostgreSQL实例的镜像和一个用于Web应用程序的镜像,对其进行的更改将继续存在。
什么是容器?
使用Docker时,我们从一个基础镜像开始。我们启动它,进行更改,这些更改会被保存在不同的层中,形成另一个镜像。
因此,我最终拥有一个用于PostgreSQL实例的镜像和一个用于Web应用程序的镜像,对其进行的更改将继续存在。
什么是容器?
长话短说。
Docker镜像:
用于创建容器的文件系统和配置(只读)应用程序。
Docker容器:
容器与镜像的主要区别在于最上层可写层。容器是具有顶部可写层的Docker镜像的运行实例。容器运行实际的应用程序。容器包含一个应用程序及其所有依赖项。当容器被删除时,可写层也会被删除。底层镜像保持不变。
其他重要术语:
Docker守护进程:
在主机上运行的后台服务,用于管理构建、运行和分发Docker容器。
Docker客户端:
命令行工具,允许用户与Docker守护进程交互。
Docker Store:
Store是Docker镜像的注册表之一。可以将注册表视为所有可用Docker镜像的目录
来自此博客文章中的图片胜过千言万语。
总结:
就像在面向对象编程语言中,一个对象是类的实例一样,Docker容器是Docker镜像的实例。
IContainer newDotNetApp = ImageFactory.DotNetImageFactory.CreateNew(appOptions);
newDotNetApp.ChangeDescription("I am making changes on this instance");
newDotNetApp.Run();
图像或容器镜像是一个文件,其中包含您的应用程序代码、应用程序运行时、配置和依赖库。该镜像基本上将所有这些内容封装成一个单一的、安全的不可变单元。适当的Docker命令用于构建镜像。该镜像具有镜像ID和镜像标签。标签通常采用<docker-user-name>/image-name:tag格式。
当您使用镜像启动应用程序时,实际上启动了一个容器。因此,您的容器是一个沙盒,在其中运行您的镜像。Docker软件用于管理镜像和容器。
镜像是一个安全的包,其中包含您的应用程序工件、库、配置和应用程序运行时。容器是您的镜像的运行时表示。