提问人:Vana 提问时间:7/27/2017 最后编辑:Philipp ClaßenVana 更新时间:7/27/2017 访问量:5384
Docker 容器始终重新启动
Docker container always restarting
问:
我尝试使用 Docker 复合文件从 debian 映像启动 Docker 容器。
但是当我这样做时,容器总是重新启动。我不知道为什么:sdocker ps - a
这是我的dockerfile:
FROM debian:jessie
ENV DEBIAN_FRONTEND noninteractive
RUN mkdir /home/server
RUN cd /home/server
VOLUME /home/server
CMD /bin/bash
这是我的docker compose文件:
version: '2'
services:
server:
build: .
restart: always
container_name: server
volumes:
- "/home/binaries:/home/server"
答:
3赞
Philipp Claßen
7/27/2017
#1
当 docker-compose 运行您的“服务器”容器时,它将立即终止。一个 docker 容器至少需要一个正在运行的进程,否则容器将退出。在您的示例中,您没有启动一个保持活动状态的进程。
正如您配置的那样,docker-compose 将无休止地为“服务器”重新启动新容器。这应该可以解释您描述的行为。restart: always
我见过docker-compose文件,其中定义了仅挂载图像的数据容器(与)。它们故意用作命令,这也会导致永久但无害的重新启动。例如:volumes_from
/bin/true
data:
restart: always
image: postgres:latest
volumes:
- /var/lib/postgresql
command: "true"
如果重新启动不是您想要的,则可以在容器中启动一个进程,该进程执行一些有用的操作,例如运行 Web 服务器或数据库。但是,仅靠 bash 并不能使容器保持活力。在非交互模式下运行的 bash 将立即退出。
评论
always