📅  最后修改于: 2023-12-03 15:30:32.275000             🧑  作者: Mango
在使用 Docker 镜像时,我们可能需要获取镜像的大小信息,例如向 ACR 中 push 镜像时,需要确保镜像大小不超过 ACR 的限制。在 pull 镜像前获取镜像大小是一个好方法,可以帮助我们更好地管理镜像。
本文将介绍如何在使用 Docker 命令 docker pull
之前获取镜像大小。
docker image
Docker 镜像管理命令 docker image
可以查询本地已有的镜像信息,通过执行以下命令可以获取本地镜像的 ID 及大小信息:
docker image inspect --format='{{.Id}} {{.Size}}' <image-name>
其中 <image-name>
为需要查询的镜像名称或 ID,执行的结果格式如下:
<镜像 ID> <镜像大小>
示例:
docker image inspect --format='{{.Id}} {{.Size}}' nginx:latest
执行结果:
sha256:84e6b355d279d82aab2e316210b3729ac0307a57c736aeb6d24dff3d3c2db3f6 133MB
Docker Registry API 可以提供更为详细的镜像信息,包括镜像大小、层数、创建时间等,通过执行以下命令可以获取镜像详细信息:
curl -s -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET "https://<registry-url>/v2/<image-name>/manifests/<tag>" | jq '.config.digest, .config.size'
其中 <registry-url>
为 Registry URL,<image-name>
为镜像名称,<tag>
为镜像标签,执行的结果格式如下:
"<镜像 digest>",
"<镜像大小>"
需要注意的是,需要确保已安装 jq
命令行工具才能解析 JSON 格式的返回结果。
示例:
curl -s -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET "https://registry.hub.docker.com/v2/library/nginx/manifests/latest" | jq '.config.digest, .config.size'
执行结果:
"sha256:dd1f84482b12610e4d1d520fdb802de4eac4fd80405d7e98a8d01f7b1fa891c1",
132889028
以上两种方式都可以用于获取 Docker 镜像的大小信息,第一种方式仅能提供本地镜像的信息,第二种方式通过与远程 Registry API 交互也可以获取远程镜像的信息。
建议在使用 Docker 镜像时,考虑将镜像大小作为参考因素进行管理。