2017-07-26 74 views
0

我尝试从debian映像启动Docker容器,并使用Docker撰写文件。 但是当我做docker ps - a,容器总是重新启动。我不知道为什么:■码头集装箱总是重新启动

这里我dockerfile:

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

这里我搬运工撰写文件:

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

“容器总是重新启动”是什么意思,而不是使用“always”重启策略时会发生什么? – Grimmy

回答

2

当搬运工,撰写运行在您的“服务器”容器,它立刻会终止。码头集装箱至少需要一个正在运行的进程,否则该容器将退出。在你的例子中,你并没有启动一个保持活力的进程。

由于您已配置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将立即退出。