在运维工作中,如何查看docker镜像?
在运维工作中,查看 Docker 镜像是管理容器化应用的基础操作之一。Docker 提供了多种命令和工具来查看镜像的详细信息,包括镜像列表、镜像大小、创建时间、镜像的分层结构等。以下是详细的操作方法和常用命令:
1. 查看本地镜像列表
(1)docker images
这是查看本地镜像的基本命令,用于列出所有已下载的镜像。
docker images
-
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 20.04 1d622ef86b88 3 weeks ago 63.2MB nginx latest 7f19c56d5b5b 2 weeks ago 133MB hello-world latest feb5d9fea6a5 5 months ago 1.84kB -
字段说明:
- REPOSITORY:镜像的仓库名称。
- TAG:镜像的标签(版本)。
- IMAGE ID:镜像的唯一标识符。
- CREATED:镜像的创建时间。
- SIZE:镜像的大小。
2. 查看镜像的详细信息
(1)docker inspect
该命令用于查看镜像的详细配置信息,包括镜像的分层结构、环境变量、入口点等。
docker inspect <image_name_or_id>
-
示例:
docker inspect ubuntu:20.04 -
输出示例(部分):
[ { "Id": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b", "RepoTags": [ "ubuntu:20.04" ], "RepoDigests": [], "Parent": "", "Comment": "", "Created": "2023-01-15T12:34:56.789Z", "Container": "abc123def456", "ContainerConfig": { "Hostname": "abc123def456", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh", "-c", "#(nop) CMD [\"/bin/bash\"]" ], "Image": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": {} }, "DockerVersion": "20.10.7", "Author": "", "Config": { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/bash" ], "Image": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": {} }, "Architecture": "amd64", "Os": "linux", "Size": 63200000, "VirtualSize": 63200000, "GraphDriver": { "Data": { "MergedDir": "/var/lib/docker/overlay2/merged", "UpperDir": "/var/lib/docker/overlay2/upper", "WorkDir": "/var/lib/docker/overlay2/work" }, "Name": "overlay2" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b" ] }, "Metadata": { "LastTagTime": "2023-01-15T12:34:56.789Z" } } ] -
说明:
-
docker inspect
输出的是 JSON 格式,包含了镜像的详细信息。 -
可以通过管道(
|
)和工具(如jq
)来解析和提取特定信息。例如:docker inspect ubuntu:20.04 | jq '.[0].Config.Cmd'
-
3. 查看镜像的历史记录
(1)docker history
该命令用于查看镜像的分层历史记录,包括每一层的创建命令和大小。
docker history <image_name_or_id>
-
示例:
docker history ubuntu:20.04 -
输出示例:
IMAGE CREATED CREATED BY SIZE COMMENT 1d622ef86b88 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B buildkit <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:... in / 63.2MB buildkit -
说明:
- 每一行代表镜像的一个分层。
CREATED BY
列显示了创建该层的 Dockerfile 指令。SIZE
列显示了该层的大小。
4. 查看镜像的大小和占用空间
(1)docker system df
该命令用于查看 Docker 系统的总体资源占用情况,包括镜像、容器和卷的大小。
docker system df
-
输出示例:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 3 2 200MB 63.2MB (31%) Containers 5 2 120MB 80MB (66%) Local Volumes 2 2 100MB 0B (0%) Build Cache 0 0 0B 0B -
说明:
TOTAL
:总数量。ACTIVE
:当前正在使用的数量。SIZE
:总占用空间。RECLAIMABLE
:可以回收的空间。
5. 查看镜像的标签和版本
(1)docker images
通过 docker images
命令可以查看镜像的标签(TAG
)和版本信息。
docker images
-
示例:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 20.04 1d622ef86b88 3 weeks ago 63.2MB ubuntu latest 1d622ef86b88 3 weeks ago 63.2MB -
说明:
TAG
列显示了镜像的版本或标签。- 同一个镜像可以有多个标签(如
20.04
和latest
)。
6. 查看镜像的存储驱动信息
(1)docker inspect
docker inspect <image_name_or_id> | jq '.[0].RootFS.L
综上所述,通过 docker inspect
命令可以查看镜像的存储驱动信息,例如使用的存储驱动(如 overlay2
)和分层结构。
标签:
黄嘉波-笔记汇总-Docker
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2024-02-17 在k8S中,Pod生命周期是什么?
2024-02-17 在k8S中,HPA V1 V2的区别是什么?
2024-02-17 在k8S中,Service怎么关联Pod的?
2024-02-17 在k8S中,如何使用EFK实现日志的统 一管理?
2024-02-17 在k8S中,Metric Service是什么?