docker logs <C> 不返回任何内容

Kev*_*ton 6 docker dockerfile docker-for-windows

我构建并运行了一个 docker 镜像

docker run --detach --name api rkevinburton/myagsourceapi
Run Code Online (Sandbox Code Playgroud)

但是当我 'docker ps -a' 时,我收到一条消息,该容器已退出。

CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS                     PORTS               NAMES
ee956fbf1d7f        rkevinburton/myagsourceapi   "/bin/bash"         10 seconds ago      Exited (0) 8 seconds ago                       api
Run Code Online (Sandbox Code Playgroud)

所以我想找出它退出的原因。所以我发出命令

docker logs ee
Run Code Online (Sandbox Code Playgroud)

但是这个命令什么都不返回。由于 docker 主机是一台 Windows 机器,我查看了 ~\AppData\Local\Docker,但 log*.txt 或 install-log.* 中的信息似乎对我没有任何帮助。如何获得有关容器“退出”原因的更多信息?

tgo*_*gos 6

Docker 容器在其主进程完成时退出。这就是为什么你没有得到任何日志。

docker log 命令批量检索执行时存在的日志。

(参见: https: //docs.docker.com/engine/reference/commandline/logs/

一个例子:

以下将创建一个新容器并启动它:

docker run -d --name=my_test_container alpine ping -c 20 127.0.0.1
[----run----]   [--------name--------] [image][-----command------]
Run Code Online (Sandbox Code Playgroud)

ping在命令停止之前尝试使用以下命令:

  • docker logs my_test_container
  • docker logs --follow my_test_container

第一个显示了(到那时)已打印的内容ping,第二个为您提供了ping打印新行的日志。

20 个 ping 请求后,ping 命令完成并且容器停止。

ubuntu@ubuntu:~$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
e8f371000146        alpine              "ping -c 20 127.0.0.1"   29 seconds ago      Exited (0) 9 seconds ago                       my_test_container
Run Code Online (Sandbox Code Playgroud)