Docker中容器和图像的区别是什么?在Docker入门教程中,这两个术语都被使用了,但我不明白其中的区别。
谁能给我点灯?
Docker中容器和图像的区别是什么?在Docker入门教程中,这两个术语都被使用了,但我不明白其中的区别。
谁能给我点灯?
当前回答
码头工人图片: 它包含一个关于如何构建和运行容器的命令和指令列表。因此,基本上Images包含启动容器(也称为blueprint)所需的所有数据和元数据。我们不能在没有指定图像的情况下将一个容器送入午餐。
$docker images centos
列出所有可用的centos版本。
码头工人容器: 容器是图像的午餐,因此我们可以说容器是图像的运行实例。 Container是一个运行时构造,不像Images是构建时构造。
其他回答
DockerFile——(构建)——> DockerImage——(运行)——> DockerContainer
DockerFile是你或开发人员编写代码来做某事的文件(安装前)
Docker Image是你在构建Docker文件时得到的。
Docker容器是你运行Docker镜像时得到的
我们可以通过拖动Docker hub来获取Docker Image,然后运行它来获取container。
图片是用你的手机拍的照片。 容器就是电话。
映像是活动容器的冻结的不可变快照。容器是正在运行(或已停止)某个映像的实例。
从名为“ubuntu”的基本图像开始。让我们在ubuntu映像中交互式地运行bash并创建一个文件。我们将使用-i和-t标志来提供一个交互式bash shell。
$ docker run -i -t ubuntu /bin/bash
root@48cff2e9be75:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@48cff2e9be75:/# cat > foo
This is a really important file!!!!
root@48cff2e9be75:/# exit
退出并重新启动映像时,不要期望该文件仍然存在。您将从与之前开始时完全相同的定义状态重新开始,而不是从您离开的地方重新开始。
$ docker run -i -t ubuntu /bin/bash
root@abf181be4379:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@abf181be4379:/# exit
但是,容器现在不再运行,它有状态,可以保存(提交)到一个映像。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abf181be4379 ubuntu:14.04 /bin/bash 17 seconds ago Exited (0) 12 seconds ago elegant_ardinghelli
48cff2e9be75 ubuntu:14.04 /bin/bash About a minute ago Exited (0) 50 seconds ago determined_pare
...
让我们从创建文件的容器ID为48cff2e9be75中创建一个图像:
$ docker commit 48cff2e9be75 ubuntu-foo
d0e4ae9a911d0243e95556e229c8e0873b623eeed4c7816268db090dfdd149c2
现在,我们有了一个非常重要的文件的新图像:
$ docker run ubuntu-foo /bin/cat foo
This is a really important file!!!!
尝试命令docker映像。你应该会看到你的新映像ubuntu-foo与我们开始时的ubuntu标准映像一起列出。
容器是基于图像的。需要将图像传递给Dockers run命令。
例子:
BusyBox映像
http://i.stack.imgur.com/eK9dC.png
这里我们指定一个名为busybox的映像。Docker在本地没有这个映像,而是从公共注册表中获取它。
注册表是Docker镜像的目录,Docker客户端可以与之通信并从中下载镜像。一旦图像被拉出,Docker启动一个容器并执行echo hello world命令。
图片[像vm]
用于创建容器的只读模板 由您或其他Docker用户构建 存储在Docker Hub或本地注册表中
容器[像运转的机器]
隔离应用平台 包含运行应用程序所需的所有内容 基于图像