Docker查询镜像版本

介绍

Docker 是一种流行的容器化平台,它允许开发者将应用程序和其依赖项封装成轻量级、可移植的容器。在 Docker 中,镜像是构建容器的基础,它包含了一个完整的文件系统以及运行应用程序所需的所有组件。

在使用 Docker 时,查询镜像的版本是一个常见的需求。本文将介绍如何使用 Docker CLI 或 Docker API 查询镜像的各个版本,并提供代码示例。

Docker CLI 查询镜像版本

列出镜像版本

首先,我们可以使用 docker images 命令来列出所有可用的镜像及其版本。该命令会以表格形式显示镜像的仓库、标签、镜像 ID、创建时间和大小等信息。

docker images

下面是一个示例输出:

REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 7e0aa2d69a15 3 weeks ago 72.9MB
ubuntu latest 7e0aa2d69a15 3 weeks ago 72.9MB
ubuntu 18.04 7d0d3ebc44b9 3 weeks ago 63.1MB
alpine 3.14 6dbb9cc54074 4 weeks ago 5.58MB
alpine latest 6dbb9cc54074 4 weeks ago 5.58MB

上述示例显示了不同的镜像仓库、标签、镜像 ID、创建时间和大小。

搜索特定标签的镜像

如果我们只想查找特定标签的镜像,可以使用下面的命令:

docker images <repository>:<tag>

例如,要搜索名为 ubuntu 的镜像的 20.04 版本,可以运行以下命令:

docker images ubuntu:20.04

删除镜像

如果想删除特定的镜像,可以使用 docker rmi 命令,后跟镜像的仓库和标签信息。

docker rmi <repository>:<tag>

例如,要删除名为 ubuntu 的镜像的 20.04 版本,可以运行以下命令:

docker rmi ubuntu:20.04

Docker API 查询镜像版本

除了使用 Docker CLI 之外,我们还可以通过 Docker API 来查询镜像的版本。

使用 Docker SDK 查询镜像版本

Docker 提供了多种编程语言的 SDK,可以方便地与 Docker API 进行交互。下面以 Python 为例,介绍如何使用 Docker SDK 查询镜像的版本。

首先,需要安装 Docker SDK for Python:

pip install docker

然后,我们可以使用以下代码来查询镜像的版本:

import docker

client = docker.from_env()

images = client.images.list()

for image in images:
    print(f"Repository: {image.attrs['RepoTags'][0]}, ID: {image.id}")

上述代码会打印出每个镜像的仓库和 ID。

使用 Docker REST API 查询镜像版本

除了使用 Docker SDK 外,我们还可以直接通过 HTTP 请求与 Docker REST API 进行交互。

首先,我们需要知道 Docker 守护进程的地址和端口号。默认情况下,Docker 监听在本地地址 http://localhost:2375 上。

然后,我们可以使用以下代码来查询镜像的版本:

import requests

response = requests.get("http://localhost:2375/images/json")

images = response.json()

for image in images:
    print(f"Repository: {image['RepoTags'][0]}, ID: {image['Id']}")

上述代码会打印出每个镜像的仓库和 ID。

结论

本文介绍了如何使用 Docker CLI 和 Docker API 查询镜像的版本。使用 docker images 命令可以列出所有可用的镜像及其版本,使用 docker images <repository>:<tag>