Docker——镜像

镜像与容器的关系

镜像是容器运行的基础,容器时镜像运行后的形态。
容器在启动或创建时,必须指定一个镜像的名称或者id,其实,这时镜像所扮演的角色是容器的模板,不同的镜像可以构造出不同的容器

镜像的结构体系

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

镜像写时的复制机制

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

查看镜像

docker images
可以通过此命令来查看本地所有镜像:
在这里插入图片描述
这里共有5个参数,含义如下:

名称含义
REPOSITORY仓库名称,仓库一般用来存放同一类型的镜像。仓库名称由其创建者指定。如果没有指定则为。一般来说仓库名称有如下几种不同形式
[namespace\ubuntu]:这种仓库名称实际上是由命名空间和实际仓库名组成,中间通过 \ 隔开。当开发者在Docker Hub上创建一个用户时,用户名就是默认的命名空间,这个命名空间是用来区分Docker Hub上注册的不同用户或组织(类似于GitHub上用户名的作用),如果想将自己的镜像上传到Docker Hub上供别人使用,则必须制定命名空间
[ubuntu]: 对于这种只有仓库名没有命名空间,可以认为其是属于顶级命名空间,该空间的仓库只用于官方的镜像,由 Docker 官方进行管理,但一般会授权给第三方开发维护。当然我们自己创建镜像时也可以使用这种命名方式,但是将无法上传到 Docker Hub 上共享。
[hub.c.163.com/library/nginx]: 这种指定url路径的方式,一般用于非 Docker Hub 上的镜像命名,例如一个第三方服务商提供的镜像或开发者自己搭建的镜像中心,都可以使用这种命名方式。
TAG用于区分同一仓库的不同镜像,默认是latest
IMAGE ID镜像的唯一标识符
CREATED镜像创建的时间
SIZE镜像的大小

如果镜像过多可以通过通配符进行匹配
docker images n*

表示查看以n开头的所有镜像
在这里插入图片描述

查找镜像

Docker search name

通过search命令去 Docker Hub 上查找相关的镜像,如下:在这里插入图片描述
其中

名称含义
NAME镜像名称
DESCRIPTION镜像的简要描述
STARS用户对镜像的评分
OFFICIAL是否是官方镜像
AUTOMATED是否使用了自动构建

下载镜像

docker pull
在执行 docker run 命令时去下载,速度有点慢,可以先pull下来再去run,如下图

  1. pull在这里插入图片描述
  2. run在这里插入图片描述

删除镜像

docker rmi name|id
删除镜像,多个镜像可以用空格隔开,有时候删除镜像失败是因为该镜像被一个容器所依赖,需要先删除容器,然后就可以删除镜像了在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值