如何在Docker中运行Alpine 2上的Apache 2?

时间:2016-06-26 06:12:12

标签: docker apache2 alpine

根据Alpine wiki,我必须在安装Apache 2后运行rc-service apache2 start。但是,在容器内运行的Alpine中没有rc-service。如何让服务命令在Docker容器中运行?

2 个答案:

答案 0 :(得分:5)

gliderlabs/docker-alpine issue 183说明码头工作者阿尔卑斯山图片没有servicerc-service

您可以看到nimmis/docker-alpine-apache基于nimmis/docker-alpine-micro,其中包含一个runit,用于处理启动和关闭自动启动的进程。

该initd将启动apache2 script,后者调用:

exec /usr/sbin/httpd -D FOREGROUND -f /web/config/httpd.conf

答案 1 :(得分:3)

Alpine默认情况下没有安装rc-service。您需要安装它(作为Dockerfile构建过程的一部分或在容器中手动安装)。

秘密调用是:

apk add openrc --no-cache

如果要从容器外部运行它(比如docker run),请使用:

docker run [options etc] bin/ash -c "apk add openrc --no-cache"

PS:rc-service对其他东西和mariadb(也不包括在阿尔卑斯山)这样的东西有好处。