image概述
  yyka2UPIbcp2 2023年11月02日 46 0

1.什么是image

image概述_docker

尝试观察上面这个图,理解镜像有以下几个特点

1.1镜像是文件和meta data的集合(root filesystem)

例如一个centos的镜像,里面包含一些最精简版的centos文件系统,还有其他软件包等文件。

1.2镜像是分层的,每层都可以添加删除改变文件,成为一个新的image

在centos这个基础镜像之上,添加java环境,就可以制作成一个新的镜像文件。

1.3不同的image可以共享同一层layer

例如我有一个centos的基础镜像,这个镜像所在的层(layer),我可以共同开启一个java的镜像和一个tomcat的镜像。

这就是不同镜像可以共享同一层的意思。

1.4镜像本身是只读的

Image本身是read-only这个怎么去理解呢,一个镜像文件制作出来之后,是不可以改变。启动镜像就产生了容器,如果镜像发生了改变就变成了其他的镜像。一个镜像,如果启动就变成了容器,如果容器关闭,这个镜像还在这里,不会发生变化,当然容器里面有变化。

2. 如何获取image

使用了一个命令 docker pull busybox来下载一个镜像。这里来解释一下这个命令。Docker表示调用的是docker这个CLI,以后执行任何docker命令,前面都需要添加docker这个前缀,pull是拉取的意思,如果你使用过git拉取代码,同样的意思,比较好理解。Busybox是一个镜像的名称,默认是从hub.docker.com这个仓库中下载一个叫busybox的镜像到你本地docker环境。

下面我演示下载一个nginx的镜像操作

[root@ai ~]# docker pull nginx

image概述_docker_02

上面这个图,显示jenkins这个镜像使用了7个layer,可以说每一层都可以是一个镜像,这个下载速度取决你网速。

这里说一下docker的优点,上面下载7个镜像,如果我下次下载一个其他镜像文件,例如centos,假如centos和nginx两个镜像之间都相同的一部分layer是完全一样的,这样下次下载centos镜像的时候,在jenkins已经下载过的文件就不会重复下载。

3.如何查看镜像

如果我们想查看docker里存在哪些镜像,你可以通过docker  images命令去查询。

[root@ai ~]# docker images

image概述_centos_03

简单介绍下每个字段的含义:

  1. REPOSITORY,翻译过来是库的意思,这里只在镜像仓库中的名称是busybox;
  2. TAG字段是标记的意思,字段值latest,默认是这个latest tag,如果有其他tag,后面我们用多了不同镜像,可以看到其他tag值;
  3. IMAGE ID,就是镜像id,在镜像仓库中的一个唯一的ID,有点像git每次提到的commit的值一样;
  4. CREATED字段,就是这个镜像是什么时候制作上传到仓库中的;
  5. SIZE字段是指,镜像的文件大小。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论