一.Docker中的Alpine Linux容器内开机启动配置

##直接使用sh环境是无法使用init系统的
docker run -itd --name alpine --privileged alpine:3.8 ash
#后面环境改为init才可以使用init系统
docker run -itd --name alpine --privileged alpine:3.8 init
#进入容器
docker exec -it alpine ash
1.进入容器安装OpenRC系统
apk update 
apk add openrc --no-cache
#设置 local 服务开机启动
rc-update add local
#安装bash环境,下次就可以使用bash环境进入容器
apk add bash --no-cache
2.创建启动文件
#启动文件在/etc/local.d目录
#启动文件的后缀必须为.start
#Alpine Linux自带了nohup后台守护
cat > /etc/local.d/test.start <<"EOF"
/bin/echo 'Test Docker Alpine linux'>/test.txt
EOF
chmod +x /etc/local.d/test.start

二.使用过程

1.安装docker
#检查/etc/apk/repositories中有没有/alpine/edge/community,没有则添加
#http://dl-cdn.alpinelinux.org/alpine/edge/community
apk update
apk add docker --no-cache
#将docker加入开机自启
rc-update add docker boot
#启动docker
rc-service docker start
#错误:ERROR: docker needs service(s) cgroups
根据https://bugs.alpinelinux.org/issues/8916这个说法是community与main搭配有点问题
解决办法是升级openrc
apk add --upgrade openrc
#重启
rc-service docker restart
分类: Main

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注