Docker容器始终重新启动

时间:2017-07-26 17:47:16

标签: docker dockerfile docker-container docker-image

我尝试使用Docker撰写文件从debian映像启动Docker容器。 但是当我docker ps - a时,容器总是重新启动。我不知道为什么:s

这是我的dockerfile:

FROM debian:jessie
ENV DEBIAN_FRONTEND noninteractive
RUN mkdir /home/server
RUN cd /home/server
VOLUME /home/server
CMD /bin/bash

这里我的docker撰写文件:

version: '2'
 services:
server:
 build: .
 restart: always
 container_name: server
 volumes:
   - "/home/binaries:/home/server"

1 个答案:

答案 0 :(得分:2)

当docker-compose运行你的"服务器"容器,它会立即终止。 docker容器至少需要一个正在运行的进程,否则容器将退出。在您的示例中,您没有开始一个保持活跃的进程。

在配置restart: always后,docker-compose将无休止地重新启动" server"的新容器。这应该解释你描述的行为。

我见过docker-compose文件,其中定义的数据容器只安装了图像(与volumes_from结合使用)。他们故意使用/bin/true作为命令,这也导致永久但无害的重启。例如:

data:
  restart: always
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  command: "true"

如果重启不是您想要的,您可以在容器中启动一个执行某些有用操作的进程,例如运行Web服务器或数据库。但单独使用bash并不会让容器保持活力。以非交互模式运行的bash将立即退出。