简介
在本实验中,你将学习如何高效使用 docker container ls
命令(也称为 docker ps
)来列出和管理你的 Docker 容器。首先你将仅列出当前正在运行的容器,然后扩展视图以包含所有容器(包括已停止的容器)。
此外,你将探索如何根据状态、名称等多种条件筛选容器列表,从而快速定位特定容器。最后,你将学习如何显示容器大小等附加信息,并根据需求格式化输出结果,全面掌握你的容器运行状况。
在本实验中,你将学习如何高效使用 docker container ls
命令(也称为 docker ps
)来列出和管理你的 Docker 容器。首先你将仅列出当前正在运行的容器,然后扩展视图以包含所有容器(包括已停止的容器)。
此外,你将探索如何根据状态、名称等多种条件筛选容器列表,从而快速定位特定容器。最后,你将学习如何显示容器大小等附加信息,并根据需求格式化输出结果,全面掌握你的容器运行状况。
在这一步中,你将学习如何列出正在运行的 Docker 容器。docker ps
命令用于显示运行中容器的相关信息。
首先,让我们运行一个简单的容器并保持其运行状态。我们将使用 ubuntu
镜像并执行一个让容器持续运行的命令。
docker pull ubuntu
docker run -d ubuntu sleep infinity
docker pull ubuntu
命令会从 Docker Hub 下载 ubuntu
镜像。docker run -d ubuntu sleep infinity
命令则基于该镜像运行一个新容器。
-d
表示以分离模式运行容器,即在后台运行ubuntu
是镜像名称sleep infinity
是在容器内执行的命令,使容器无限期保持运行状态现在,让我们使用 docker ps
命令列出运行中的容器。
docker ps
该命令将显示当前所有运行中容器的列表。你应该能看到我们刚启动的 ubuntu
容器。输出信息包含容器 ID、镜像名称、执行的命令、创建时间、状态、端口映射和容器名称等。
在上一步中,你学会了如何使用 docker ps
列出运行中的容器。然而,docker ps
仅显示当前正在运行的容器。要查看所有容器(包括已停止的),你需要使用 -a
参数。
首先,让我们停止上一步启动的 ubuntu
容器。你需要知道容器的 ID 或名称,这些信息可以从 docker ps
的输出中获取。
docker stop $(docker ps -q --filter ancestor=ubuntu)
docker stop
命令用于停止正在运行的容器。
$(docker ps -q --filter ancestor=ubuntu)
是一个命令替换,用于获取基于 ubuntu
镜像的运行中容器的 ID。-q
参数表示仅输出容器 ID,--filter ancestor=ubuntu
则按镜像名称进行筛选。现在,让我们使用 docker ps -a
列出所有容器(包括已停止的)。
docker ps -a
该命令将显示所有已创建的容器列表,无论它们当前处于何种状态(运行中、已停止、已退出等)。你应该能看到列出的 ubuntu
容器,其状态应为 "Exited"(已退出)。
在这一步中,你将学习如何结合 docker ps
命令使用 --filter
参数,根据容器状态和名称来筛选容器列表。当你管理多个容器并需要查找特定容器时,这个功能非常实用。
首先,让我们启动另一个容器,但这次我们会为它指定一个名称。
docker run -d --name my-nginx nginx
docker run -d --name my-nginx nginx
命令基于 nginx
镜像以分离模式运行一个新容器,并将其命名为 my-nginx
。
docker pull nginx
,因为如果本地没有该镜像,docker run
会自动拉取。现在,让我们使用状态筛选器来仅列出运行中的容器。
docker ps --filter status=running
该命令将只显示当前处于 "running"(运行中)状态的容器。你应该能看到列出的 my-nginx
容器。
接下来,我们按名称筛选容器。
docker ps -a --filter name=my-nginx
该命令会列出所有名称为 my-nginx
的容器(由于使用了 -a
参数,包括已停止的容器)。你应该能看到 my-nginx
容器及其状态信息。
你还可以组合多个筛选条件。例如,要列出特定名称且正在运行的容器:
docker ps --filter status=running --filter name=my-nginx
只有当 my-nginx
容器当前处于运行状态时,这条命令才会显示它。
在这一步中,你将学习如何显示容器大小以及格式化 docker ps
命令的输出。了解容器大小有助于管理磁盘空间。
默认情况下,docker ps
不会显示容器大小。要包含大小信息,可以使用 --size
参数。
docker ps -a --size
该命令将列出所有容器(运行中和已停止的),并包含两个与大小相关的列:SIZE
(容器可写层的大小)和 VIRTUAL SIZE
(容器的总大小,包括镜像层)。
有时 docker ps
的默认输出格式可能不符合你的需求。你可以使用 --format
参数来格式化输出,该参数接受一个 Go 模板字符串。
例如,要仅显示容器 ID、镜像名称和状态,可以使用以下命令:
docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}"
在这个格式字符串中:
{{.ID}}
表示容器 ID{{.Image}}
表示镜像名称{{.Status}}
表示容器状态\t
是制表符,用于分隔各列你也可以在格式化输出中包含大小信息:
docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Size}}"
该命令将显示容器 ID、镜像、状态和大小。{{.Size}}
字段包含可写层大小和虚拟大小。
你可以尝试在格式字符串中使用不同的字段来自定义输出。其他有用的字段包括 {{.Names}}
、{{.CreatedAt}}
和 {{.Ports}}
。
在本实验中,你学习了如何使用 docker ps
命令来列出 Docker 容器。首先通过以分离模式运行一个简单的 ubuntu
容器,然后使用 docker ps
仅列出运行中的容器。接着在停止之前创建的容器后,你学会了如何通过给 docker ps
命令添加 -a
参数来显示所有容器(包括已停止的)。