如何列出所有 Docker 容器,包括隐藏的容器

DockerBeginner
立即练习

简介

本教程将指导你完成列出所有 Docker 容器的过程,包括那些隐藏起来不易被直接看到的容器。学习结束时,你将全面了解 Docker 容器管理,并能够对容器环境保持完全可见性。

理解 Docker 容器

Docker 是一个广受欢迎的容器化平台,它允许开发者以一致且可重复的方式打包和部署应用程序。容器是轻量级、独立且可执行的软件包,其中包含运行应用程序所需的一切,包括代码、运行时环境、系统工具和库。

什么是 Docker 容器?

Docker 容器是一种打包和分发应用程序的方式。它们封装了一个应用程序及其所有依赖项,如库和其他二进制文件,并提供一致的运行时环境。这确保了无论底层操作系统或基础设施如何,应用程序都将以相同的方式运行。

Docker 容器的优点

  • 一致性:Docker 容器提供一致且可预测的运行时环境,确保应用程序在不同环境中的行为一致。
  • 可移植性:Docker 容器可以轻松地在不同系统之间移动,包括开发、测试和生产环境,而无需进行复杂的配置更改。
  • 可扩展性:根据应用程序的资源需求,Docker 容器可以轻松地进行扩展或缩减,从而更易于管理和部署应用程序。
  • 高效性:Docker 容器是轻量级的,并且比传统虚拟机使用更少的资源,因为它们共享主机操作系统的内核。

Docker 容器生命周期

Docker 容器的生命周期可以分为以下几个阶段:

  1. 创建:从 Docker 镜像创建一个新容器。
  2. 运行:启动容器,其中的应用程序开始执行。
  3. 停止:停止容器,但保留其状态。
  4. 启动:重新启动已停止的容器,应用程序恢复执行。
  5. 删除:从系统中永久删除容器。
graph LR 创建 --> 运行 运行 --> 停止 停止 --> 启动 启动 --> 运行 运行 --> 删除

Docker 容器网络

Docker 容器可以连接到一个或多个网络,从而使它们能够相互通信以及与主机系统通信。Docker 提供了几种网络驱动程序,如 bridgehostoverlay,以满足不同的网络需求。

网络驱动程序 描述
bridge 默认的网络驱动程序,它将容器连接到主机系统上的虚拟网桥网络。
host 允许容器使用主机系统的网络堆栈,绕过虚拟网桥网络。
overlay 实现跨多个 Docker 主机的容器之间的通信,创建一个分布式网络。

通过了解 Docker 容器的基础知识,你将更有能力使用这种强大的容器化技术来管理和部署你的应用程序。

列出 Docker 容器

当你运行了 Docker 容器后,你需要能够列出并管理它们。Docker 提供了几个命令来列出和检查容器,使你能够了解它们的当前状态并与之交互。

列出所有容器

要列出所有正在运行的 Docker 容器,你可以使用 docker container ls 命令:

docker container ls

这将显示一个包含正在运行容器信息的表格,包括容器 ID、镜像、命令、创建时间、状态和端口。

如果你想列出所有容器,包括那些未运行的容器,可以使用 -a--all 标志:

docker container ls -a

这将显示所有已创建的容器,无论它们当前的状态如何。

列出容器详细信息

要获取特定容器的更详细信息,可以使用 docker container inspect 命令:

docker container inspect <容器ID>

这将输出一个 JSON 对象,其中包含有关该容器的详细信息,例如其配置、网络设置和资源使用情况。

你还可以使用 docker container stats 命令获取一个或多个容器的实时性能指标:

docker container stats <容器ID>

这将显示指定容器的 CPU、内存、网络和磁盘 I/O 使用情况的实时流。

通过掌握用于列出和检查 Docker 容器的各种命令,你将能够有效地管理和排查容器化应用程序的故障。

显示隐藏的容器

在某些情况下,你可能需要列出使用标准的 docker container ls 命令无法看到的 Docker 容器。这些“隐藏”的容器可能是已停止、已删除或处于非运行状态的容器。

列出所有容器,包括隐藏的容器

要列出所有 Docker 容器,包括那些未运行的容器,可以使用 docker container ls --all 命令:

docker container ls --all

这将显示所有容器的列表,无论它们当前的状态如何。

列出已停止的容器

如果你只想专门列出已停止的容器,可以使用以下命令:

docker container ls --all --filter "status=exited"

这将显示所有状态为“已退出”的容器,这意味着它们不再运行。

列出悬空容器

悬空容器是指那些不与任何镜像关联且没有引用的容器。可以使用以下命令列出这些容器:

docker container ls --all --filter "status=created"

这将显示所有状态为“已创建”的容器,这些通常是悬空容器。

通过了解如何列出所有 Docker 容器,包括隐藏的或未运行的容器,你将能够更好地管理和维护你的容器化应用程序。

总结

在本 Docker 教程中,你已经学会了如何列出所有容器,包括隐藏的容器,以便全面了解你的 Docker 环境。通过理解不同的命令和技术,你可以有效地管理和监控你的 Docker 容器,确保最佳性能和故障排查能力。