迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 > Docker >

仅列出 Docker 中已停止的容器

作者:迹忆客 最近更新:2023/04/17 浏览次数:

Docker 为我们提供了一些有用的命令,我们可以使用这些命令来管理我们的镜像和容器,但是有些命令并不明显。 例如,我们可以使用 Docker 命令 docker ps 来显示正在运行的容器列表,或者使用 docker 命令 docker ps -a 来显示所有容器的列表,无论是停止的还是正在运行的。

一个不明显的功能是仅显示已停止容器的列表。 在本教程中,我们将学习如何在 Docker 中显示仅已停止容器的列表。


从 Docker Hub 拉取 Nginx 镜像

在本教程中,我们将使用 Nginx 映像从中运行容器,并使用这些容器来实现本文的目标。

在您的计算机上使用键盘快捷键 ALT+F12 打开一个新的终端窗口,然后使用以下命令从 docker hub 中拉取 Nginx 映像。

~$ docker pull nginx

由于我们没有指定标签,这个命令将拉取最新版本的 Nginx。 我们可以在终端窗口查看下载详情,如下图。

Using default tag: latest
latest: Pulling from library/nginx
e9995326b091: Pull complete
71689475aec2: Pull complete
f88a23025338: Pull complete
0df440342e26: Pull complete
eef26ceb3309: Pull complete
8e3ed6a9e43a: Pull complete
Digest: sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239f
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

列出 Docker 镜像

下载完成后,我们可以使用以下列出所有图像的命令来验证 Nginx 图像是否已下载。

~$ docker image ls

如果之前安装了其他镜像,则使用此命令将全部列出。 在我们的例子中,我们刚刚显示了本教程中使用的图像以验证镜像是否已下载。

镜像细节如下所示:

REPOSITORY                        TAG       IMAGE ID       CREATED       SIZE
nginx                             latest    76c69feac34e   2 days ago    142MB

从 Nginx 镜像运行容器

出于测试目的,我们将只运行两个分别名为 container-onecontainer-two 的容器。 在同一个终端窗口中,依次执行以下命令以使用 nginx 映像运行两个容器。

运行 container-one

~$ docker run --name container-one -d -p 3000:80 nginx

输出:

9e70a29947c373df2abd4748271d252f297c6a06669f7cffb04fe95ee5fca671

运行 container-two:

~$ docker run --name container-two -d -p 5000:80 nginx

输出:

43cd017b94062e47c6c3f868ed74fb5ca7920522e870eceb58115e388e9d43a5

请注意 ,第一个容器在主机上公开端口 3000 以侦听容器上的端口 80,而第二个容器在主机上公开端口 5000 以侦听与前一个容器相同的端口。


列出正在运行的容器

在上一节中,我们运行了两个名为 container-onecontainer-two 的容器。 要验证这些容器是否正在运行,我们可以使用以下命令,它列出了所有正在运行的容器。

~$ docker ps

输出:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
43cd017b9406   nginx     "/docker-entrypoint.…"   4 minutes ago    Up 4 minutes    0.0.0.0:5000->80/tcp   container-two
9e70a29947c3   nginx     "/docker-entrypoint.…"   24 minutes ago   Up 24 minutes   0.0.0.0:3000->80/tcp   container-one

停止正在运行的容器

在列出已停止的容器之前,我们必须先停止一个容器,我们可以使用以下命令来停止使用其名称的容器。 可以自由运行和停止多个容器。

~$ docker stop container-one

输出:

container-one

当我们执行 docker ps 命令时,会发现只有 container-two 在运行。 在下一节中,我们将学习如何仅列出已停止的容器,这是本教程的主要目标。


使用 docker ps 命令列出已停止的容器

docker ps 命令有一个 --filter 标志,我们可以指定它来根据条件过滤容器。 --filter 标志的值期望将用于提供输出的条件。

在同一个终端窗口中,使用以下命令过滤状态为 exited 的容器。

~$ docker ps --filter "status=exited"

输出:

CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS                      PORTS                    NAMES
9e70a29947c3   nginx                   "/docker-entrypoint.…"   48 minutes ago   Exited (0) 18 minutes ago                            container-one

使用 docker container ls 命令列出已停止的容器

此命令与前面的示例具有相同的语法。 docker container ls 命令有一个 --filter 标志,我们可以指定它来根据条件过滤容器。 由于 --filter 标志是一样的,我们只需要提供条件就可以过滤状态为exited的容器,如下。

~$ docker container ls --filter "status=exited"

输出:

CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS                      PORTS                    NAMES
9e70a29947c3   nginx                   "/docker-entrypoint.…"   48 minutes ago   Exited (0) 18 minutes ago                            container-one

请注意 --filter 标志应以键值对的形式提供,如果有多个过滤器,请确保提供多个标志。

在本文中,我们使用了名为 status 的过滤器来根据状态过滤容器。 但是,docker 文档提供了我们可以用来过滤容器的其他策略。


总结

在本教程中,我们学习了如何利用 Nginx 容器仅列出 Docker 中已停止的容器。 涵盖的两种方法包括使用 ps 命令列出已停止的容器和使用容器 ls 命令列出已停止的容器。

这两个命令都有一个 --filter 标志,该标志接受键值对以根据特定条件过滤容器。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Linux 中托管 Docker Internal

发布时间:2023/04/18 浏览次数:139 分类:Docker

Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。

在 Docker 中设置工作目录

发布时间:2023/04/18 浏览次数:82 分类:Docker

在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。本文将讨论在 Docker 中更改我们当前和默认的工作目录。

在 Docker 容器中公开多个端口

发布时间:2023/04/18 浏览次数:143 分类:Docker

Docker 容器使用端口来实现万维网上不同设备之间的通信。 在本篇文章中,我们将学习如何使用 Nginx 应用程序在 Docker 容器中公开多个端口。

将用户添加到 Docker 容器

发布时间:2023/04/18 浏览次数:187 分类:Docker

在本文中,我们将学习如何通过实现返回产品数组的 Express 应用程序将用户添加到 Docker 容器。

使用 Docker 网络主机命令

发布时间:2023/04/18 浏览次数:112 分类:Docker

在本文中,我们将学习如何使用 --network 命令将容器添加到主机网络。 如果我们不使用此命令指定网络,我们还将了解如何将容器添加到默认网络。

清除 Docker 容器日志

发布时间:2023/04/18 浏览次数:181 分类:Docker

本文介绍了我们可以用来清除 docker 容器中日志的不同方法。日志是应用程序在特定事件或状态发生时记录的信息,它们帮助我们监控应用程序并采取必要的措施。

Docker 中的守护进程日志位置

发布时间:2023/04/18 浏览次数:175 分类:Docker

本文将讨论守护进程事件以及我们通常可以在哪里找到每个操作系统 (OS) 的守护进程日志。

Dockerfile 中 COPY 和 ADD 命令的区别

发布时间:2023/04/18 浏览次数:158 分类:Docker

在 Dockerfile 中,我们可以使用 COPY 或 ADD 命令复制这些文件。 这些命令在功能上是相同的; 但是,存在一些差异。本文介绍了 Dockerfile 中 COPY 和 ADD 命令之间的区别。

Docker 中的 --rm 标志

发布时间:2023/04/18 浏览次数:77 分类:Docker

本文介绍如何在 docker 中使用 --rm 命令。 此外,它还提供了使用命令的优势。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便