Docker中容器和图像的区别是什么?在Docker入门教程中,这两个术语都被使用了,但我不明白其中的区别。

谁能给我点灯?


当前回答

映像是根文件系统更改和容器运行时中使用的相应执行参数的有序集合。映像是只读的。

https://docs.docker.com/glossary/?term=image

容器是映像的活动(退出时为非活动)状态实例化。

https://docs.docker.com/glossary/?term=container

其他回答

码头工人图片: 它包含一个关于如何构建和运行容器的命令和指令列表。因此,基本上Images包含启动容器(也称为blueprint)所需的所有数据和元数据。我们不能在没有指定图像的情况下将一个容器送入午餐。

$docker images centos

列出所有可用的centos版本。

码头工人容器: 容器是图像的午餐,因此我们可以说容器是图像的运行实例。 Container是一个运行时构造,不像Images是构建时构造。

图片[像vm]

用于创建容器的只读模板 由您或其他Docker用户构建 存储在Docker Hub或本地注册表中

容器[像运转的机器]

隔离应用平台 包含运行应用程序所需的所有内容 基于图像

在Docker中,一切都从图像开始。映像是构成操作系统所需的所有文件。传统上,您需要为每个应用程序安装一个完整的操作系统。使用Docker,你可以把它配对,这样你就有一个小容器,里面有足够的操作系统来做你需要做的事情,你可以在一台计算机上高效地拥有很多很多这样的容器。

使用docker images查看已安装的映像,使用docker ps查看正在运行的映像。 当你输入docker run时,它会获取映像,并使其成为一个带有运行进程的活容器。我倾向于使用:

Docker运行-ti <image>:<tag> bash

最后,图像有它们自己的id集,容器也有它们自己的id集——它们不重叠。

容器是基于图像的。需要将图像传递给Dockers run命令。

例子:

BusyBox映像

http://i.stack.imgur.com/eK9dC.png

这里我们指定一个名为busybox的映像。Docker在本地没有这个映像,而是从公共注册表中获取它。

注册表是Docker镜像的目录,Docker客户端可以与之通信并从中下载镜像。一旦图像被拉出,Docker启动一个容器并执行echo hello world命令。

DockerFile——(构建)——> DockerImage——(运行)——> DockerContainer

DockerFile是你或开发人员编写代码来做某事的文件(安装前)

Docker Image是你在构建Docker文件时得到的。

Docker容器是你运行Docker镜像时得到的

我们可以通过拖动Docker hub来获取Docker Image,然后运行它来获取container。