如何列出 Docker 容器

DockerDockerBeginner
立即练习

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

简介

Docker 已成为用于对应用程序进行容器化的流行工具,使得开发、部署和管理软件变得更加容易。在本教程中,我们将探讨如何列出 Docker 容器,这是管理 Docker 环境的一项基本任务。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/top("Display Running Processes in Container") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") subgraph Lab Skills docker/ls -.-> lab-411562{{"如何列出 Docker 容器"}} docker/ps -.-> lab-411562{{"如何列出 Docker 容器"}} docker/inspect -.-> lab-411562{{"如何列出 Docker 容器"}} docker/top -.-> lab-411562{{"如何列出 Docker 容器"}} docker/info -.-> lab-411562{{"如何列出 Docker 容器"}} docker/version -.-> lab-411562{{"如何列出 Docker 容器"}} end

理解 Docker 容器

Docker 是一个广受欢迎的开源平台,它使开发者能够在一个名为容器的一致且隔离的环境中构建、部署和运行应用程序。容器是轻量级、可移植且自包含的单元,它们将应用程序的代码、依赖项和运行时打包成一个单独的包。

什么是 Docker 容器?

Docker 容器是一种将应用程序及其所有依赖项打包成一个标准化单元的方式,该单元可以在不同的计算环境中一致地部署和运行。每个容器都包含应用程序、其所有依赖项以及一个轻量级操作系统,确保无论底层基础设施如何,应用程序都能以相同的方式运行。

Docker 容器的优点

  • 一致性:容器确保应用程序以相同的方式运行,无论底层基础设施如何,消除了“在我的机器上能运行”的问题。
  • 可扩展性:容器可以轻松地扩展或缩小以满足不断变化的需求,使管理和部署应用程序变得更加容易。
  • 高效性:容器比传统虚拟机更轻量级、更高效,因为它们共享主机操作系统的内核,减少了资源使用和启动时间。
  • 可移植性:容器可以轻松地在不同环境中移动和部署,从开发者的笔记本电脑到生产服务器,无需进行复杂的配置更改。

Docker 架构

Docker 使用客户端 - 服务器架构,其中 Docker 客户端与 Docker 守护进程通信,Docker 守护进程负责构建、运行和管理 Docker 容器。Docker 守护进程在主机上运行,而 Docker 客户端可以在同一台机器或远程机器上运行。

graph TD A[Docker Client] -- Communicates with --> B[Docker Daemon] B -- Manages --> C[Docker Containers] B -- Manages --> D[Docker Images] B -- Manages --> E[Docker Volumes] B -- Manages --> F[Docker Networks]

Docker 镜像和容器

Docker 镜像是创建 Docker 容器的蓝图。它们包含运行应用程序所需的应用程序代码、依赖项和配置。当你运行一个 Docker 镜像时,它会创建一个 Docker 容器,容器是镜像的运行实例。

graph LR A[Docker Image] -- Creates --> B[Docker Container] B -- Runs --> C[Application]

通过理解 Docker 容器的基本概念,你现在可以探索如何列出和管理你的 Docker 容器。

列出 Docker 容器

列出 Docker 容器是管理和监控 Docker 环境的一项基本任务。docker ps 命令是列出并查看正在运行的容器信息的主要方式。

列出正在运行的容器

要列出所有当前正在运行的 Docker 容器,请使用以下命令:

docker ps

这将显示一个包含以下信息的表格:

  • 容器 ID
  • 镜像
  • 命令
  • 创建时间
  • 状态
  • 端口
  • 名称

你还可以添加 -a--all 标志来列出所有容器,包括那些未运行的容器:

docker ps -a

自定义容器列表

你可以使用 --format 标志来自定义容器列表中显示的信息。例如,要显示容器 ID、镜像和状态,可以使用以下命令:

docker ps --format "{{.ID}} {{.Image}} {{.Status}}"

这将输出一个包含指定列的表格:

容器 ID 镜像 状态
1234567890ab ubuntu:latest 已启动 5 分钟
0987654321cd nginx:latest 已退出 (0) 10 分钟前

你还可以使用各种选项(如 --filter-f)来过滤容器列表。例如,要仅列出具有特定名称的容器:

docker ps -a --filter "name=my-container"

列出已停止的容器

要仅列出已停止的容器,可以使用以下命令:

docker ps --filter "status=exited"

这将显示所有已退出或已停止的容器列表。

通过了解如何列出 Docker 容器,你可以有效地管理和监控你的 Docker 环境。在下一节中,我们将探讨一些高级列表选项,以帮助你更深入地了解你的 Docker 容器。

探索高级列表选项

虽然基本的 docker ps 命令提供了有关正在运行的容器的大量信息,但 Docker 提供了几个高级选项,可帮助你更深入地了解并深入洞察你的 Docker 环境。

按状态列出容器

除了列出正在运行的容器外,你还可以按容器状态列出它们。例如,要列出当前已退出或已停止的所有容器,可以使用以下命令:

docker ps -a --filter "status=exited"

你还可以按其他状态列出容器,例如“已创建”、“正在重启”或“已暂停”。

按标签列出容器

Docker 允许你为容器分配标签,这对于组织和筛选容器很有用。要按特定标签列出容器,可以使用 --filter 选项:

docker ps --filter "label=my-label=value"

这将列出所有具有标签“my-label”且值为“value”的容器。

按资源使用情况列出容器

要获取有关容器资源使用情况的信息,可以使用 docker stats 命令。此命令将显示每个正在运行的容器的 CPU、内存、网络和块 I/O 使用情况的实时统计信息。

docker stats

你还可以使用与 docker ps 相同的技术来筛选 docker stats 的输出,例如按容器名称或标签进行筛选。

以 JSON 格式列出容器

如果你需要以编程方式处理 docker ps 的输出,可以使用 --format 选项以 JSON 格式输出容器信息。这对于将 Docker 容器管理集成到你自己的脚本或应用程序中很有用。

docker ps --format '{{json.}}'

通过探索这些高级列表选项,你可以更深入地了解你的 Docker 容器并有效地管理你的 Docker 环境。

总结

在本教程结束时,你将对如何列出 Docker 容器有扎实的理解,包括探索高级列表选项。这些知识将使你能够有效地管理基于 Docker 的应用程序和基础设施。