6、镜像操作

Docker 镜像基本操作

镜像也是 docker 的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态。
镜像是一个包含程序运行必要以来环境和代码的只读文件,它采用分层的文件系统,将每一层的改变以读写层的形式增加到原来的只读文件上。

镜像与容器的关系

容器在启动或者创建时,必须指定一个镜像的名称或者 id ,其实,这时镜像所扮演的角色就是容器的模版,不同的镜像可以构造出不同的容器,同一个镜像,我们也可以通过配置不同参数来构造出不通的容器。如:

docker run -itd --name nginx nginx

命令中后一个 nginx 表示创建该容器所需要的镜像,当然这里还省略了一些信息,例如版本号等。

镜像的体系结构

镜像的最底层是一个启动文件系统(bootfs)镜像,bootfs 的上层镜像叫做根镜像,一般来说,根镜像是一个操作系统,例如 Ubuntu、CentOS 等,用户的镜像必须构建于根镜像之上,在根镜像之上,用户可以构建出各种各样的其他镜像。
镜像的本质其实就是一系列文件的集合,一层套一层的结构有点类似于 Git 。

镜像的写时复制机制

通过 docker run 命令指定一个容器创建镜像时,实际上是在该镜像之上创建一个空的可读写的文件系统层级,可以将这个文件系统层级当成一个临时的镜像来对待,而命令中所指的模版镜像则可以称之为父镜像。父镜像的内容都是以只读的方式挂载进来的,容器会读取共享父镜像的内容,用户所做的所有修改都是在文件系统中,不会对父镜像造成任何影响。当然用户可以通过其他一些手段使修改持久化到父镜像中。

简而言之,镜像就是一个固定的不会变化的模版文件,容器是根据这个模版创建出来的,容器会在模版的基础上做一些修改,这些修改本身并不会影响到模版,我们还可以根据模版(镜像)创建出来更多的容器。

如果有必要,也是可以修改模版(镜像)的。

镜像查看

用户可以通过 docker images 命令查看本地所有镜像:
在这里插入图片描述
TAG: 镜像版本用于区分同一仓库中的不同镜像,默认为latest(最新版本)。

IMAGE ID: 镜像id是镜像的一个唯一标识符。

CREATED: 表示镜像的创建时间。

SIZE: 表示镜像的大小。

REPOSITORY:仓库名称,仓库一般用来存放同一类型的镜像。仓库的名称由其创建者指定。如果没有指定则为 。一般来说,仓库名称有如下几种不同的形式:

  [namespace\ubuntu]:这种仓库名称由命名空间和实际的仓库名组成,中间通过 \ 隔开。当开发者在 Docker Hub 上创建
  一个用户时,用户名就是默认的命名空间,这个命令空间是用来区分 Docker Hub 上注册的不同用户或者组织(类似于 
  GitHub 上用户名的作用),如果读者想将自己的镜像上传到 Docker Hub 上供别人使用,则必须指定命名空间,否则上
  传会失败。

.

  [ubuntu]:这种只有仓库名,对于这种没有命名空间的仓库名,可以认为其属于顶级命名空间,该空间的仓库只用于官方
  的镜像,由 Docker 官方进行管理,但一般会授权给第三方进行开发维护。当然用户自己创建的镜像也可以使用这种命
  名方式,但是将无法上传到 Docker Hub 上共享。

.

   [hub.c.163.com/library/nginx]:这种指定 url 路径的方式,一般用于非 Docker Hub 上的镜像命名,例如一个第三方服务
   商提供的镜像或者开发者自己搭建的镜像中心,都可以使用这种命名方式命名。

使用 docker images 命令可以查看本地所有的镜像,如果镜像过多,可以通过通配符进行匹配,如下:
在这里插入图片描述镜像下载

当用户执行 docker run 命令时,就会自动去 Docker Hub 上下载相关的镜像,开发者也可以通过 search 命令去 Docker Hub 上搜索符合要求的镜像,如下:
在这里插入图片描述
NAME:表示镜像的名称。

DESCRIPTION:表示镜像的简要描述。

STARS:表示用户对镜像的评分,评分越高越可以放心使用。

OFFICIAL:是否为官方镜像。

AUTOMATED:是否使用了自动构建。

在执行 docker run 命令时再去下载,速度会有点慢,如果希望该命令能够快速执行,可以在执行之前,先利用 docker pull 命令将镜像先下载下来,然后再运行。
在这里插入图片描述在这里插入图片描述
镜像删除

镜像可以通过 docker rmi 命令进行删除,参数为镜像的id或者镜像名,参数可以有多个,多个参数之间用空格隔开。

有的时候,无法删除一个镜像,大部分原因是因为该镜像被一个容器所依赖,此时需要先删除容器,然后就可以删除镜像了。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值