根据Alpine wiki,我必须在安装Apache 2后运行rc-service apache2 start
。但是,在容器内运行的Alpine中没有rc-service
。如何让服务命令在Docker容器中运行?
答案 0 :(得分:5)
gliderlabs/docker-alpine
issue 183说明码头工作者阿尔卑斯山图片没有service
或rc-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(也不包括在阿尔卑斯山)这样的东西有好处。