如何使用 info 命令检查 Docker 登录状态

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

Docker 是一个强大的容器化平台,它允许你将应用程序打包并在隔离的环境中运行。在使用 Docker 时,你经常需要与容器注册表交互,这需要身份验证。了解你当前的登录状态对于高效地管理你的 Docker 工作流程至关重要。

在这个实验(Lab)中,你将学习如何使用 docker info 命令检查你的 Docker 登录状态。这项技能对于 Docker 用户来说是基础,因为它有助于确保你拥有从私有注册表拉取和推送镜像的适当权限。

验证 Docker 安装

在检查登录状态之前,让我们首先验证 Docker 是否已正确安装并在我们的系统上运行。这一步确保我们拥有一个可用的 Docker 环境,以便进行后续操作。

检查 Docker 状态

在 LabEx 环境中打开一个终端。你可以通过点击桌面环境中的终端图标来完成此操作。

终端打开后,运行以下命令来检查 Docker 是否已安装并运行:

docker --version

此命令应显示你的系统上安装的 Docker 版本。你应该看到类似这样的输出:

Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

接下来,让我们检查 Docker 守护进程(daemon)是否正常运行。执行以下命令:

docker run hello-world

如果 Docker 运行正常,它将下载一个测试镜像并在容器中运行它。你应该看到包含以下内容的输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

这确认了 Docker 已正确安装并在你的系统上运行。如果你遇到任何错误,请使用以下命令检查 Docker 服务是否正在运行:

sudo systemctl status docker

输出应该显示 Docker 服务处于活动状态(运行中)。

现在我们已经确认 Docker 运行正常,我们可以在下一步继续学习 docker info 命令。

理解 Docker Info 命令

在这一步,我们将探索 docker info 命令,并了解它如何提供关于你的 Docker 环境的宝贵信息。

运行 Docker Info 命令

docker info 命令提供了你的 Docker 安装的全面概述。它显示系统范围的信息,例如容器和镜像的数量、服务器版本、存储驱动程序等等。

让我们在终端中运行 docker info 命令:

docker info

你应该看到一个包含各种部分的详细输出。输出将类似于这样:

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.9.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  ...

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 ...

 Registry: https://index.docker.io/v1/
 ...

输出包含几个部分,其中包含有关 Docker 客户端和 Docker 服务器的信息。

Docker Info 输出中的关键部分

让我们了解 docker info 输出的一些关键部分:

  1. Client:关于 Docker 客户端配置的信息。
  2. Server:关于 Docker 服务器(守护进程)的信息。
  3. Containers:你系统上的容器数量,包括正在运行、已暂停和已停止的容器。
  4. Images:你系统上的 Docker 镜像数量。
  5. Server Version:Docker 服务器的版本。
  6. Storage Driver:Docker 使用的存储驱动程序。
  7. Registry:关于已配置的 Docker 注册表的信息。

对于检查登录状态,我们特别关注 Registry 部分,我们将在下一步中进行探讨。

检查 Docker 登录状态

现在我们已经理解了 docker info 命令,让我们专注于如何使用它来检查我们的 Docker 登录状态。

在 Docker Info 中解读登录状态

当你运行 docker info 命令时,输出包含关于你的 Docker Hub 登录状态的信息。具体来说,你应该查找 Registry 部分。

再次运行该命令:

docker info

现在,在输出中查找 Registry 部分。

如果你没有登录任何 Docker 注册表,输出将仅显示默认注册表 URL:

Registry: https://index.docker.io/v1/

如果你已登录,你将看到其他信息,包括你的用户名:

Registry: https://index.docker.io/v1/
Username: yourusername

目前,你很可能没有登录 Docker Hub 或任何其他注册表。

登录 Docker Hub

让我们尝试登录 Docker Hub,看看登录状态信息如何变化。要登录 Docker Hub,请使用 docker login 命令:

docker login

此命令将提示你输入你的 Docker Hub 用户名和密码:

Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:

为了本次实验的目的,你不需要输入实际的凭据。相反,按 Ctrl+C 取消登录过程。

检查登录状态的替代方法

除了使用 docker info 命令之外,你还可以通过检查 Docker 配置文件来检查你是否已登录 Docker Hub:

ls -la ~/.docker/

如果你已登录,你应该在此目录中看到一个名为 config.json 的文件。此文件包含你的身份验证信息。你可以使用以下命令查看其内容:

cat ~/.docker/config.json

如果你未登录,该文件可能不存在,或者可能不包含身份验证信息。

从 Docker 注册表注销

现在我们已经了解了如何检查登录状态并尝试登录,让我们学习如何从 Docker 注册表注销。

使用 Docker Logout 命令

要从 Docker 注册表注销,你可以使用 docker logout 命令。此命令删除指定注册表的存储凭据,如果未指定任何注册表,则删除默认注册表的存储凭据。

运行以下命令:

docker logout

如果你未登录,你将看到类似以下的消息:

Not logged in to https://index.docker.io/v1/

如果你已登录并且注销成功,你将看到:

Removing login credentials for https://index.docker.io/v1/

验证注销状态

注销后,让我们使用 docker info 命令验证我们的登录状态:

docker info

再次查找 Registry 部分。它现在应该只显示注册表 URL,没有任何用户名信息:

Registry: https://index.docker.io/v1/

你也可以再次检查 Docker 配置文件:

cat ~/.docker/config.json

如果你之前已登录,该文件将被更新以删除你注销的注册表的身份验证信息。

理解 Docker 注册表身份验证

Docker 使用基于令牌的身份验证来管理对注册表的访问。当你登录到注册表时,Docker 将身份验证令牌存储在配置文件 (~/.docker/config.json) 中。此令牌用于后续与注册表的交互,直到你注销或令牌过期。

了解如何检查你的登录状态和管理你的身份验证对于安全的 Docker 操作至关重要,尤其是在使用私有注册表时。

总结

在本实验中,你已经学习了管理 Docker 注册表身份验证的基本技能:

  1. 验证 Docker 是否已正确安装并正在运行
  2. 使用 docker info 命令查看有关你的 Docker 环境的详细信息
  3. 使用 docker info 命令检查你的 Docker 登录状态
  4. 了解登录 Docker Hub 的过程
  5. 从 Docker 注册表注销并验证注销是否成功

这些技能是使用 Docker 的基础,尤其是在你需要与私有注册表交互或保护你的身份验证凭据时。

你现在已经掌握了自信地管理你的 Docker 登录状态的知识,从而确保在未来的项目中安全高效地进行 Docker 操作。