Docker 容器在“docker start”后不断停止

gom*_*sha 4 docker dockerfile docker-compose

我对 Docker 还很陌生。我有一个Dockerfile从以前的开发人员那里继承来的很长的东西,它有很多错误,我正在尝试将其恢复到工作点。我注释掉了文件的大部分内容,除了第一行:

FROM ubuntu:14.04
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

  1. docker build -t pm .构建图像 - 这是有效的,因为我在执行时可以看到图像docker images
  2. docker run <image-id>返回没有错误或任何消息。现在我期望从图像创建容器并启动。但是当我执行 a 时,docker ps -a它显示容器已退出:
CONTAINER ID        IMAGE               COMMAND             CREATED    STATUS                          PORTS               NAMES 
Run Code Online (Sandbox Code Playgroud)

b05f9727f516 f216cfb59484 "/bin/bash" 大约一分钟前 退出 (0) 大约一分钟前
lucid_shirley

不知道为什么我无法获得正在运行的容器以及为什么它在docker run命令之后一直停止。

  1. 执行docker logs <container_id>不显示任何内容 - 它只是返回而没有任何输出。

Ntw*_*ike 5

您的 Docker 映像实际上并没有执行任何操作,容器在完成其工作时停止。由于此处没有运行的前台进程,它将启动,然后立即停止。\n要确认您的容器没有问题,请尝试将以下代码放入docker-compose.yml(与 位于同一文件夹中Dockerfile)并运行docker-compose up,现在您将看到您的容器正在运行而无需退出。

\n\n
version: \'3\'\nservices:\n  my-service:\n    build: .\n    tty: true    \n
Run Code Online (Sandbox Code Playgroud)\n\n

请查看这里Docker 官方教程,它将指导您如何使用 docker。

\n


MrE*_*MrE 5

尝试 docker run -it <image> /bin/bash 在容器内运行 shell。

这对你来说没有多大作用,但它会告诉你发生了什么:一旦你退出 shell,它也会退出容器。

您的容器基本上不执行任何操作:它具有 Ubuntu 映像,但没有 ENTRYPOINT 或 CMD 命令来运行“某些内容” 容器在运行时是短暂的:它们运行单个命令并在命令完成时退出。