镜像管理

search

进行搜索查找存在镜像
Docker Hub查找镜像:
(也可以直接去官方仓库查找,这样信息更直观完整)

  1. docker search [imageName]

image.png
其它更多选项使用 —help查看

  1. docker search --help
  1. -f, --filter filter 列出收藏数不小于指定值的镜像
  2. --format string 包括stars=100(收藏数不少于100的镜像),is-official=true(指定Docker官方发布的镜像)
  3. --limit int 设置最多输出num条记录,默认25
  4. --no-trunc 不截断,显示完整的镜像描述

示例:
从官方docker库中查找starts等于100的nginx 镜像

  1. docker search -f stars=100 is-official=true nginx

pull

从镜像窗口仓库中拉取镜像(拉取的镜像元信息存储在 /var/lib/docker/ 目录下)

  1. docker pull [options] NAME[:TAG]

示例:
拉取nginx镜像

  1. docker pull nginx

其他可选命令:

  1. -a, --all-tags 拉取所有TAG镜像
  2. --disable-content-trust 忽略镜像的校验,默认开启
  3. --platform string Set platform if server is multi-platform capable
  4. -q, --quiet Suppress verbose output

rmi

删除本地已存在的镜像

  1. docker rmi [OPTIONS] IMAGE [IMAGE...]

其它可选参数

  1. -f, --force 强制删除
  2. --no-prune Do not delete untagged parents

示例:

  1. docker rmi nginx

删除已启动过的镜像(不能删除正在启动过的镜像或者已存在进程中的镜像)

  1. docker rmi test-1.0.2
  2. >>> Error response from daemon: conflict: unable to remove repository reference "test-1.0.2" (must force) - container d5dfd3d998c1 is using its referenced image 77a65c8f375b

解决方案:
1、选删除容器记录 使用 docker rm [容器ID]

  1. [root@Vue docker]# docker rm d5dfd3d998c1
  2. d5dfd3d998c1

2、使用强制删除 使用docker rmi [imageName/tag]

  1. [root@Vue docker]# docker rmi test-1.0.2 --force
  2. Untagged: test-1.0.2:latest
  3. Deleted: sha256:77a65c8f375bf70f85f78ee3edab229acec1ea64d94dee11e89896c5678e0c79
  4. Deleted: sha256:3ee9e749ccbf55e79c26f6eb2bad6e182209815dd5510444a81e82c6aad2b374

tag

给镜像进行做标签将其进行分类

  1. docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

示例:

  1. docker tag nginx nginx:v2

image.png

commit

从本地容器创建一个新的镜像

  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

其它可选参数:

  1. -a, --author string 提交的镜像作者
  2. -c, --change list 使用Dockerfile指令来创建镜像
  3. -m, --message string 提交时的说明信息
  4. -p, --pause commit时将容器暂停

示例:
使用本地已存在的容器进行创建一个新的镜像,我们先来查看下本地已启动或者已在进程中的容器
docker ps /docker ps -a(该命令是用来查看本地存在的容器)
image.png
就用第一个容器,以gitlab/gitlab-runner:latest 容器进行创建一个新的镜像

  1. docker commit d65d1b83ff30 gitlab-test

可以看到我们已经成功的创建了一个新的容器
image.png

save

将一个或多个镜像进行打包

  1. docker save [OPTIONS] IMAGE [IMAGE...]

可选参数

  1. -o, --output string 打包成tar

进行打包nginx镜像

  1. docker save nginx -o nginx.tar

image.png

load

从tar包中进行加载镜像,一般可用于离线安装镜像

  1. docker load [OPTIONS]

可选参数

  1. -i, --input string tar包中加载镜像
  2. -q, --quiet 压缩输出信息

我们继续进行将打包好的nginx镜像将其加载到docker中

  1. [root@Vue ~]# docker load -i nginx.tar
  2. Loaded image: nginx:latest
  3. Loaded image: nginx:v2

image.png

import

从归档文件中创建镜像

  1. docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

可选参数

  1. -c, --change list 应用docker 指令创建镜像;
  2. -m, --message string 提交时的说明文字;
  3. --platform string 如果服务器支持多平台,请设置平台

我们来将本地redis.tar包进行用于创建docker镜像
image.png

  1. docker import redis-5.0.12.tar redis-import:v1
  2. 进行将redis-5.0.12.tar 包创建名为 redis-import:v1的镜像

image.png