如何在Docker上运行Alpine的Apache 2?
根据Alpine wiki,我必须在安装Apache 2之后运行rc-service apache2 start
。但是,在容器内运行的Alpine中没有rc-service
。 如何让服务命令在Docker容器中运行?
gliderlabs/docker-alpine
问题183说明docker高山形象没有service
或rc-service
。
你可以看到nimmis/docker-alpine-apache
基于nimmis/docker-alpine-micro
,它包含一个runit,用于处理启动和closures进程自动启动。
该initd将启动apache2脚本 ,该脚本调用:
exec /usr/sbin/httpd -D FOREGROUND -f /web/config/httpd.conf
Alpine没有默认安装rc-service。 您需要安装它(作为您的Dockerfile构build过程的一部分或手动在容器中)。
秘密调用是:
apk add openrc --no-cache
如果你想从容器外部运行它(比如docker run),那么使用:
docker run [options etc] bin/ash -c "apk add openrc --no-cache"
PS:RC服务是有利于其他东西,像mariadb(也不包括在高山)