有一个命令列出图像,docker图像,但似乎没有对应的docker容器。

除了成为根用户并查看/var/lib/docker之外,似乎没有其他方法可以做到这一点。我遗漏了什么吗?这是不该做的事吗?


当前回答

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)。

其他回答

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

使用标志-a来显示所有容器(而不仅仅是正在运行的容器)。例如docker容器ls -a

使用标志-q显示容器及其数字id。例如docker容器ls -q

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

只列出容器SHA1:

docker ps -aq --no-trunc

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

例如,只列出所有容器的名称(因为docker ps只列出它们的名称和其他信息):

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

下面的命令默认只显示正在运行的容器。

docker ps

查看所有容器:

docker ps -a

用于显示最新创建的容器:

docker ps -l

我得到了错误信息无法连接到Docker守护进程。我忘了我运行守护进程的根和需要sudo:

$ sudo docker ps

还有以下几种选择:

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

自:1.13.0 (2017-01-18):

通过添加docker镜像和docker容器命令来重构CLI命令,以获得更大的一致性#26025

在介绍Docker 1.13时,鼓励用户采用新的语法:

CLI重组 在Docker 1.13中,我们重新组合了每个命令,使其位于与其交互的逻辑对象之下。例如,list和start of containers现在是docker container的子命令,history是docker image的子命令。 这些变化让我们清理了Docker CLI的语法,改进了帮助文本,使Docker更易于使用。旧的命令语法仍然受到支持,但我们鼓励大家采用新的语法。