显示停止的Docker容器

lap*_*ira 14 docker

我是Docker的新手,我想列出已停止的容器.

docker ps:

sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
Run Code Online (Sandbox Code Playgroud)

什么都没有出现,因为我重新启动了机器而我没有将它们配置为自动启动容器.

因此,当我尝试运行容器时,它说:

sudo docker run -d -p 8080:80 --name=angular_moviemasher  moviemasher/angular-moviemasher
docker: Error response from daemon: Conflict. The name "/angular_moviemasher" is already in use by container b4428b708711c15233f558e70f58cb7800e23c4a6a57534abfa5818912630a37. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

所以我想看看哪些Docker容器已经安装并启动它们.

带有示例的Docker Cheat Sheet文档中,我只能找到一个如何显示正在运行的容器的示例:

容器的信息

显示正在运行的容器.使用-a选项,它显示正在运行和已停止的容器.

码头工人

lvt*_*llo 23

就像你说的那样docker ps -a会显示停止和运行的容器(所有容器).以下命令仅显示已停止的容器.

docker ps -a | grep Exit
Run Code Online (Sandbox Code Playgroud)

现在,您可以docker logs container-id在容器上执行以查看出错的地方.


小智 14

仅显示已停止容器的最佳方法是运行以下命令:

docker container ls -f status=exited -a
Run Code Online (Sandbox Code Playgroud)


Ama*_*ade 12

上面的答案中没有提到的另一个选项是:

\n
docker container list --all\n
Run Code Online (Sandbox Code Playgroud)\n

它是在 Docker 1.13(2017 年 1 月)中添加的,似乎是推荐的语法

\n
\n

在 Docker 1.13 中,我们重新组合了每个命令,使其位于与其交互的逻辑对象下。例如,list 和 startof 容器现在是 docker 容器的子命令,history 是 docker image 的子命令。

\n

docker container list
\n docker container start
\ndocker image history

\n

这些更改让我们清理了 Docker CLI 语法、改进了帮助文本并使 Docker 更易于使用。仍然支持旧的命令语法,但我们鼓励大家采用新语法

\n
\n


DAX*_*lic 5

好吧,你给了自己答案:

集装箱信息

显示正在运行的容器。使用-a选项,它显示正在运行和停止的容器。

码头工人

所以试试

sudo docker ps -a
Run Code Online (Sandbox Code Playgroud)


Zer*_*mus 5

如果docker ps -a机器重新启动后没有显示任何内容,请尝试重新启动 Docker 守护进程(关机后有时也会发生在我身上)。