
一、查看镜像信息
查看镜像的命令通常有:images、tag和inspect子命令。
1.使用images命令列出本地镜像
使用docker images 命令可以列出本地主机上已有镜像的基本信息。

REPOSITORY:表示来自于哪个仓库。
TAG:表示镜像的标签信息,标签只是标记,并不能标识镜像内容。
IMAGE ID:镜像ID,镜像的唯一标识,如果两个镜像ID相同,则说明它们实际上指向了同一个镜像,只是具有不同标签名而已。
CREATED:表示镜像最后的更新时间。
VIRTUAL SIZE:表示镜像大小,好的镜像往往体积会较小。
2.使用tag命令为镜像添加标签
为了方便在后续工作中使用特定镜像,还可以使用docker tag命令为本地镜像任意添加新的标签。

其中test_redis和redis镜像的ID号是相同的,其实对应的是同一个镜像,只是使用不同的标签而已。
3.使用inspect命令查看镜像详细信息
使用inspect命令可以获取镜像的详细信息,包括制作者、适应架构、各层的数字摘要等。
命令的语法如下:
docker inspect 镜像名
[root@localhost ~]# docker inspect redis [{ "Id": "a6edd7a55846043cdc25121900dee5f244334c08ddcfd9995bed9708395dac3a",
"Parent":
"5b5acb53ad733373bc3d6bbb1169d84892c42cd871c16041b9fe38126dd2d658",
"Comment": "",
"Created": "2021-08-17T14:30:06.550779326Z",
"Container":
"fa59f1c2817c9095f8f7272a4ab9b11db0332b33efb3a82c00a3d1fec8763684",
"ContainerConfig": {
"Hostname": "fa59f1c2817c",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"PortSpecs": null,
"ExposedPorts": {
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "GOSU_VERSION=1.12", "REDIS_VERSION=6.2.5", "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis- 6.2.5.tar.gz", "REDIS_DOWNLOAD_SHA=4b9a75709a1b74b3785e20a6c158cab94cf52298aa381eea947a678a60d5 51ae" ],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"redis-server\"]"
],
"Image":
"sha256:befbd3fc62bffcd0115008969a014faaad07828b2c54b4bcfd2d9fc3aa2508cd",
"Volumes": {
"/data": {}
},
"VolumeDriver": "",
"WorkingDir": "/data",
"Entrypoint": [
"docker-entrypoint.sh"
],
"NetworkDisabled": false,
"MacAddress": "",
"OnBuild": null,
"Labels": {} },
"DockerVersion": "20.10.7",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"PortSpecs": null,
"ExposedPorts": {
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"REDIS_VERSION=6.2.5",
"REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis- 6.2.5.tar.gz",
"REDIS_DOWNLOAD_SHA=4b9a75709a1b74b3785e20a6c158cab94cf52298aa381eea947a678a60d5 51ae"
],
"Cmd": [ "redis-server"
],
"Image":
"sha256:befbd3fc62bffcd0115008969a014faaad07828b2c54b4bcfd2d9fc3aa2508cd",
"Volumes": {
"/data": {}
},
"VolumeDriver": "",
"WorkingDir": "/data",
"Entrypoint": [
"docker-entrypoint.sh"
],
"NetworkDisabled": false,
"MacAddress": "",
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 0,
"VirtualSize": 105389901
}
]
上面返回的是一个JSON格式的消息,如果只要其中某一项的内容时,可以使用-f来指定,语法格式如下:
docker insepect -f {{".项名"}} 镜像名
[root@localhost ~]# docker inspect -f {{".Id"}} redis a6edd7a55846043cdc25121900dee5f244334c08ddcfd9995bed9708395dac3a
4.使用history命令查看镜像历史
既然镜像文件由多个层组成,那么怎么才知道各层的内容具体是什么呢?这时候可以使用history子命令,该命令将列出各层的创建信息。

过长的命令被自动截断了,可以使用前面提到的--no-trunc 选项来输出完整命令。
二、查找镜像
使用docker search 命令可以搜索Docker Hub 官方仓库中的镜像。语法为:
docker search [option] keyword
[root@localhost ~]# docker search redis
NAME DESCRIPTION
STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store th...
9921 [OK]
sameersbn/redis
83 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0, 6.279
rediscommander/redis-commander Alpine image for redis-commander - Redis m...
65 [OK]
redislabs/redisearch Redis With the RedisSearch module pre-load...
38
redislabs/redisinsight RedisInsight - The GUI for Redis
35
redislabs/redis Clustered in-memory database engine compat...
31
oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Su...
29
redislabs/rejson RedisJSON - Enhanced JSON data type proces...
27
arm32v7/redis Redis is an open source key-value store th...
24
redislabs/redisgraph A graph database module for Redis
16 [OK]
redislabs/redismod An automated build of redismod - latest Re...
15 [OK]
arm64v8/redis Redis is an open source key-value store th...
15
redislabs/rebloom A probablistic datatypes module for Redis
14 [OK]
webhippie/redis Docker images for Redis
11 [OK]
s7anley/redis-sentinel-docker Redis Sentinel
10 [OK]
redislabs/redistimeseries A time series database module for Redis
10
insready/redis-stat Docker image for the real-time Redis monit...
10 [OK]
goodsmileduck/redis-cli redis-cli on alpine
9 [OK]
centos/redis-32-centos7 Redis in-memory data structure store, used...
5
clearlinux/redis Redis key-value data structure server with...
3
wodby/redis Redis container image with orchestration
1 [OK]
tiredofit/redis Redis Server w/ Zabbix monitoring and S6 O...
1 [OK]
runnable/redis-stunnel stunnel to redis provided by linking conta...
1 [OK]
xetamus/redis-resource forked redis-resource
0 [OK]
OFFICIAL:表示是官方认证的镜像
STARS:表示获得的点赞扬数
三、删除和清理镜像
1.使用标签删除镜像
使用docker rmi或docker image rm命令可以删除镜像,命令格式为:

2.使用镜像ID删除镜像
使用镜像ID删除时,会先删除所有指向该镜像的标签,再删除该镜像文件本身。
以上面的centos镜像为例,使用镜像ID的方式来删除镜像。
四、使用commit命令创建镜像
通常创建Docker镜像有两种方法,一是使用commit命令创建;二是使用dockerfile来文件来创建。这一小节主要介绍如何使用commit命令来创建。可以将此想象为我们是在往版本控制系统里提交变更,我们先创建一个容器,并在容器里做出修改,就像修改代码一样,最后再将修改提交为一个新境像。
使用commit创建境像的语法如下:

本章节关于“Docker中查看镜像信息,找到镜像及运用”的内容就给大家讲解到这里,希望对做测试工作的小伙伴有帮助~欢迎大家每天和我一起学习更多涨薪技能哦。

温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!

川石课堂
扫码进入
“腾讯课堂”
在线重复学习

自学群
扫一扫进入
“软件测试猿”
交流学习大群