一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,上一个章节我们讲了“Docker镜像的使用以及获取”,那么今天就来谈谈如何查看“Docker镜像信息”
查看镜像的命令通常有: 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中如何查找镜像”的内容就给大家讲解到这里,希望对做测试工作的小伙伴有帮助~欢迎大家每天和我一起学习更多涨薪技能哦。