使用docker compose文件时使用代码0的容器出口

Jug*_*ugi -1 docker dockerfile docker-compose devops

我有一个dockerfile来安装httpd.当我使用该命令运行此dockerfile时

docker run -dit/bin/bash,

容器已启动,并在后台运行.当我执行docker ps我可以看到容器正在运行.

我创建了一个docker-compose.yml文件,如下所示,

version: '2'
services:
  web:
    build:
      context: ./web
      dockerfile: Dockerfile-apache
    image: web:1.0
    container_name: web
    ports:
    - "80:80"
    command: service httpd start
Run Code Online (Sandbox Code Playgroud)

我用这个构建了这个撰写文件

docker-compose build.

之后我开始使用容器

docker-compose up -d.

容器正在退出.我不知道如何让容器在后台运行.

此外,我想让服务在容器内运行.例如,我需要像容器内的服务httpd start一样运行命令以及如何操作?

Har*_*ers 7

这是因为只要命令运行,Docker容器就会存在.您的命令service httpd start将在后台启动httpd然后退出.这将终止httpd和容器.

您必须直接在前台运行httpd进程,请参阅官方映像的启动脚本:

httpd -DFOREGROUND