暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【测试开发】Docker篇-镜像管理

246

search

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

docker search [imageName]

复制

其它更多选项使用 --help
查看

docker search --help

复制

更多选项

-f, --filter filter
  列出收藏数不小于指定值的镜像

--format string
  包括stars=100(收藏数不少于100的镜像),is-official=true(指定Docker官方发布的镜像)

--limit int
      设置最多输出num条记录,默认25条

--no-trunc
       不截断,显示完整的镜像描述

示例:

从官方Docker
库中查找starts
等于100的nginx
镜像

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

复制

pull

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

docker pull [options] NAME[:TAG]

复制

示例:

拉取nginx镜像

docker pull nginx

复制

其他可选命令:

-a, --all-tags
              拉取所有TAG镜像

--disable-content-trust
 忽略镜像的校验,默认开启

--platform string
        如果服务器是多平台的,则设置平台

-q, --quiet
                  不显示详细输出

rmi

删除本地已存在的镜像

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

复制

其它可选参数

-f, --force
     强制删除--no-prune
  不移除该镜像的过程镜像,默认移除

示例:

docker rmi nginx

复制

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

docker rmi test-1.0.2

复制
>>> Error response from daemon: conflict: unable to remove repository re
ference "test-1.0.2" (must force) - container d5dfd3d998c1 is using its 
referenced image 77a65c8f375b

复制

解决方案:

1、选删除容器记录 使用 docker rm [容器ID]

[root@Vue docker]# docker rm d5dfd3d998c1
d5dfd3d998c1

复制

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

[root@Vue docker]# docker rmi test-1.0.2 --force

复制
Untagged: test-1.0.2:latest
Deleted: sha256:77a65c8f375bf70f85f78ee3edab229acec1ea64d94dee11e89896c5678e0c79
Deleted: sha256:3ee9e749ccbf55e79c26f6eb2bad6e182209815dd5510444a81e82c6aad2b374

复制

tag

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

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

复制

示例:

docker tag nginx nginx:v2

复制

commit

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

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

复制

其它可选参数:

-a, --author string
  提交的镜像作者

-c, --change list
     使用Dockerfile
指令来创建镜像

-m, --message string
  提交时的说明信息

-p, --pause
           在commit
时将容器暂停

示例:

使用本地已存在的容器进行创建一个新的镜像,我们先来查看下本地已启动或者已在进程中的容器

docker ps /docker ps -a(该命令是用来查看本地存在的容器)

复制

就用第一个容器,以gitlab/gitlab-runner:latest
容器进行创建一个新的镜像

docker commit d65d1b83ff30 gitlab-test

复制

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

save

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

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

复制

可选参数

-o, --output string
 打包成tar包 进行打包nginx
镜像

docker save nginx -o  nginx.tar

复制

load

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

docker load [OPTIONS]

复制

可选参数

-i, --input string
  从tar包中加载镜像

-q, --quiet
        压缩输出信息

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

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

复制

import

从归档文件中创建镜像

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

复制

可选参数

-c, --change list
     应用docker 指令创建镜像;

-m, --message string
   提交时的说明文字;

--platform string
  如果服务器支持多平台,请设置平台

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

docker import redis-5.0.12.tar redis-import:v1

复制

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


文章转载自测试前沿布道者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论