docker - 由 docker-compose 创建的容器在​​终止后不会出现在 docker ps 中

标签 docker docker-compose

我的问题

当 docker 容器以 docker run 启动时退出后,仍列在 docker ps -a 中其日志可以通过 docker logs <id> 查看.

但是,当使用 docker-compose 启动 docker 容器时,仅出现在 docker ps 中和docker logs当它运行时。存在后,其日志将无法访问。

不用说,我没有删除容器,也没有使用 --rm或任何其他删除参数。

示例

当容器运行时:

$ sudo docker logs d6a06d6655b1

>  test /usr/src/what/ever/src
> ava "--match=gong*" "--verbose" "--serial"


  ✔ gong › gong_tests › gong1
...

容器退出后

$ sudo docker logs d6a06d6655b1
Error response from daemon: No such container: d6a06d6655b1

我的问题

如何查看由 docker-compose 启动的已退出 docker 容器的日志?

更新

这对我来说是一个愚蠢的错误,但在极少数情况下,它可能与 future 的其他人相关:

我的Makefile包含 docker-compose down命令,其中 rm -ed 实例。

最佳答案

我无法重现您所描述的行为。如果我从一个简单的 docker-compose.yaml 开始:

version: "3"

services:
  example:
    image: alpine
    command: "echo this is a test"

然后使用docker-compose up运行它:

Starting compose_example_1 ... 
Starting compose_example_1 ... done
Attaching to compose_example_1
example_1  | this is a test
compose_example_1 exited with code 0

容器在 docker ps -a 的输出中如预期可见:

CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS                      PORTS               NAMES
929fa9ccc631        alpine                        "echo this is a te..."   About a minute ago   Exited (0) 32 seconds ago                       compose_example_1

并且docker log可以正常工作:

$ docker logs compose_example_1
this is a test

如果您看到不同的行为,请更新您的问题以包含您正在使用的 dockerdocker-compose 版本以及具体的步骤顺序重现该行为。

关于docker - 由 docker-compose 创建的容器在​​终止后不会出现在 docker ps 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287048/

相关文章:

windows - 适用于 Windows 的 Docker : cannot assign requested address

linux - 无法在 CentOS 中使用 docker run 命令

docker - Mesos 上的 Kubernetes

bash - 使用非root用户在Dockerfile中运行root服务

docker - Docker/Docker-Compose 中的 NFS 卷

docker - 尝试使用 docker-compose 构建 Docker 镜像时出现 "Unable to find a match Error"

php - 如何在docker容器中启用php-fpm的访问日志?

mysql - 尝试从主机连接到 mysql docker 容器时出现 "Reading initial communication packet"错误

docker - 如何使用 golang 在不同容器中使用 docker-compose env 文件变量?

django - "docker-compose run"命令后卷更改不持久(Django 的collectstatic)