我的问题
当 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
如果您看到不同的行为,请更新您的问题以包含您正在使用的 docker
和 docker-compose
版本以及具体的步骤顺序重现该行为。
关于docker - 由 docker-compose 创建的容器在终止后不会出现在 docker ps 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287048/