我有一个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
我使用
构建了这个撰写文件docker-compose build 。
之后我使用
启动了容器docker-compose up -d 。
容器正在退出。我不知道如何让容器在后台运行。
此外,我想让服务在容器内运行。例如,我需要在容器内运行 service httpd start 这样的命令以及如何操作?
答案 0 :(得分:6)
这是因为只要命令运行,Docker容器就会存在。
您的命令service httpd start
将在后台启动httpd,然后退出。这将终止httpd和容器。
您必须直接在前台运行httpd进程,请参阅official image's start script:
httpd -DFOREGROUND