我尝试使用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"
答案 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将立即退出。