一、知识点概要

官方文档

  • 获取镜像
  • 列出本地镜像
  • 创建镜像
  • 存出和载入镜像
  • 移除本地镜像
  • 镜像的实现原理

二、名词解释

基础镜像

一个没有任何父镜像的镜像,谓之基础镜像。

镜像ID

所有镜像都是通过一个 64 位十六进制字符串 (内部是一个 256 bit 的值)来标识的。 为简化使用,前 12 个字符可以组成一个短ID,可以在命令行中使用。短ID还是有一定的 碰撞机率,所以服务器总是返回长ID。

三、获取镜像

说明

从镜像仓库中拉取或者更新指定镜像

语法

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

选项

选项

说明

-a

拉取所有TAG镜像

–disable-content-trust

忽略镜像的校验,默认开启

说明

参数

说明

NAME

仓库名(镜像名称)

TAG

是代表镜像的版本

DIGEST

数据摘要

通过id给镜像命名 id可以镜像吗_mysql

栗子

# 获取一个 mysql 8.0.17:
docker pull mysql:8.0.17
# 获取一个 mysql 5.7:
docker pull mysql:5.7

通过id给镜像命名 id可以镜像吗_通过id给镜像命名_02

四、列出本地镜像

说明

显示本地已有的镜像

语法

docker image ls [选项] [仓库[:标签]]

常用选项

选项

说明

-a

显示本地所有的镜像(默认隐藏中间图像)

-q

只显示ID

栗子

➜  docker image ls
#   显示摘要信息
➜  docker image ls--digests

通过id给镜像命名 id可以镜像吗_字符串_03


通过id给镜像命名 id可以镜像吗_字符串_04

属性

说明

REPOSITORY

来自于哪个仓库

TAG

镜像的标记

IMAGE ID

镜像 ID 号(唯一)

CREATED

创建时间

SIZE

大小

DIGEST

信息摘要

显示指定仓库的版本

docker  image ls -a  mysql

五、删除镜像

说明

用于删除一个或多个映像。我们可以用镜像的完整 ID,也称为 长 ID,来删除镜像。使用脚本的时候可能会用长ID,但是人工输入就太累了,所以更多的时候是用 短 ID 来删除镜像。docker image ls 默认列出的就已经是短 ID 了,一般取前 3 个字符以上,只要足够区分于别的镜像就可以了。如果想一次性删除多个可以使用空格隔开

语法

docker image rm [选项] <短 ID | 长 ID | 镜像名> ...

选项

名称,简写

默认

说明

--force, -f

false

强制删除映像

--no-prune

false

不要删除未标记的父映像

栗子

通过镜像名删除

docker rm ubuntu

通过镜像ID删除

docker rm a2a15febcdf3

删除所有无用的镜像

docker images | grep '<none>' | awk '{print $3}' | xargs docker rmi