如何在Docker中列出容器


965

有一个列出图像的命令docker images,但是似乎没有对应的docker containers

除了扎根并调查/var/lib/docker那里似乎没有办法。我想念什么吗?那是不应该做的事情吗?


Answers:


1638

要仅显示正在运行的容器,请使用给定命令:

docker ps

要显示所有容器,请使用给定命令:

docker ps -a

要显示最新创建的容器(包括所有状态),请使用给定命令:

docker ps -l

要显示n个最后创建的容器(包括所有状态),请使用给定命令:

docker ps -n=-1

要显示总文件大小,请使用给定命令:

docker ps -s

上面显示的内容来自docker.com

在新版本的Docker中,命令已更新,并添加了一些管理命令:

docker container ls

它用于列出所有正在运行的容器。

docker container ls -a

然后,如果您要清洁它们,

docker rm $(docker ps -aq)

它用于列出所有创建的容器,无论其状态如何。

并停止所有Docker容器(强制执行)

docker rm -f $(docker ps -a -q)  

这里的容器是管理命令。


@RutgerHofste这两个命令(docker rmdocker ps确实显示在Docker的帮助中。
Munchkin

10
清理所有不必要的物品(例如悬空的容器,未使用的图像,日志等)的另一种有用方法是使用docker system prune --all。您可以在此处
docker

拉出图像后,ps -a不会列出该图像。似乎您只能列出至少运行一次的图像?
ftravers

docker ps列出所有正在运行暂停的容器。仅列出正在运行的设备:docker ps --filter="status=running"
WindyFields

@ftravers docker ps仅显示有关容器的信息。您想要的是有关图像的信息。您可以使用该docker images命令查看所有本地图像。
Lappro

141

列出所有正在运行和已停止的容器

docker ps -a

列出所有正在运行的容器(仅说明显而易见的-f过滤选项的示例)

docker ps -a -f status=running

列出所有正在运行和已停止的容器,仅显示其容器ID

docker ps -aq

删除所有未运行的容器

docker rm `docker ps -aq -f status=exited`

32

请注意,前一段时间对此命令进行了更新。默认情况下,它不会显示容器的大小(因为这对于许多正在运行的容器来说是相当昂贵的)。也docker ps -s用于显示容器尺寸。


按照下面mrh的回答,您还需要-a开关来查看未运行的容器(对于您要删除的容器来说可能是这种情况),因此最后一条命令是docker ps -as(不要忘记sudo在守护进程以root用户身份运行)
Anthony DiSanti 2016年

21

docker ps -s将仅显示正在运行的容器的大小。

要检查所有容器的大小,请使用 docker ps -as


19

还有以下选项:

docker container ls
docker container ls -a
# --all, -a
# Show all containers (default shows just running)

从:1.13.0(2017-01-18)

通过添加docker imagedocker container命令来重组CLI命令,以提高一致性#26025

如此处所述:Docker 1.13引入后,鼓励用户采用新语法:

重组CLI

在Docker 1.13中,我们将每个命令重新组合在一起,使其位于与其交互的逻辑对象下。例如liststart集装箱现在的子docker containerhistory是的子命令docker image

这些更改使我们可以清理Docker CLI语法,改进帮助文本并简化Docker的使用。仍然支持旧的命令语法,但是我们鼓励大家采用新的语法


1
很好的信息,很遗憾,docker --help建议的界面在其输出中向后退回3页,并在不赞成使用的命令之前隐藏!
danio

13

仅列出容器SHA1:

docker ps -aq --no-trunc

这样,您可以将所有容器的列表用于其他命令(这些命令接受多个容器ID作为参数)。

例如,列出所有容器的名称(因为docker ps仅列出其名称以及其他信息):

docker inspect --format='{{.Name}}' $(sudo docker ps -aq --no-trunc)

13

Docker命令集非常简单,可以很好地结合在一起:

docker stack ls
docker service ls
docker image ls
docker container ls

首先教别名是令人困惑的。一旦您了解发生了什么,他们就可以保存一些按键:

docker images -> docker image ls
docker ps -> docker container ls
docker rmi -> docker image rm
docker rm -> docker container rm

Docker中有几个别名。例如:

docker rmi
docker image rm
docker image rmi
docker image remove

都是相同的命令(请参阅参考资料docker help image rm)。


4

有许多列出所有容器的方法。

您可以找到使用3种这样的别名ls, ps, list

sudo docker container ls 
sudo docker container ps
sudo docker container list
sudo docker ps
sudo docker ps -a

您还可以使用Give选项[option]

选项-:

  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display numeric IDs
  -s, --size            Display total file sizes

您可以使用以下选项:

sudo docker ps //Showing only running containers
sudo docker ps -a //All container (running + stopped)
sudo docker pa -l // latest
sudo docker ps -n <int valuse 1,2,3 etc>// latest number of created containers
sudo docker ps -s // Display container with size
sudo docker ps -q // Only display numeric IDs for containers
docker docker ps -a | tail -n 1 //oldest container

3

只显示正在运行的容器

docker ps

显示所有容器(包括所有状态)

docker ps -a

显示最新创建的容器(包括所有状态)

docker ps -l

显示n个最后创建的容器(包括所有状态)

docker ps -n=-1

显示文件总大小

docker ps -s

在新版本的Docker中,命令已更新,并添加了一些管理命令:

docker container ls

列出所有正在运行的容器。

docker container ls -a


3

列出正在运行的容器:

$ docker ps

列出所有容器:

$ docker ps -a

仅列出停止的容器:-

$ docker ps --filter "status=exited"

要么

$ docker ps -f "status=exited"


这些命令已经发布了多次-重复其他答案的原因是什么?
Nico Haase

2

只是获取最后n = 5个容器的便捷方法(无论是否运行):

$ docker container ls -a -n5

2

使用docker container ls列出所有正在运行的容器。

使用该标志-a显示所有容器(不仅仅是运行中的容器)。即docker container ls -a

使用该标志-q显示容器及其数字ID。即docker container ls -q

请访问文档以了解此命令的所有可用选项。


1

我收到了错误消息,Cannot connect to the Docker daemon.我忘记了我以root身份运行守护程序并需要sudo

$ sudo docker ps

1
alias docker="sudo --group docker docker"
ctrl-alt-delor

1
docker ps [OPTIONS]

以下命令默认情况下仅显示正在运行的容器。

docker ps

要查看所有容器:

docker ps -a

为了显示最新创建的容器:

docker ps -l
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.