Alpine-Linux:仅5MB的Linux
Alpine-Linux,一款极其精简的linux,一个容器只需不超过 8 MB 的空间。而在磁盘中的最小安装仅要大约 130 MB 的存储空间。
Alpine-Linux
简介
Alpine Linux 是一款独立的非商业性的通用 Linux 发行版,关注于安全性、简单性和资源效率。
Alpine Linux 围绕 musl libc 和 busybox 构建。这使得它比传统的 GNU/Linux 发行版更小,更节省资源。**一个容器只需不超过 8 MB
的空间。而在磁盘中的最小安装仅要大约 130 MB
的存储空间。**尽管体积很小,Apline 提供了完整的 Linux 环境,其存储库中还包含了大量的软件包备选。除此之外,Alpine 还对软件包进行了缩减和拆分,以使用户能够对安装内容有更精确的控制,进一步帮助减少安装体积并提高效率。
Alpine 的极简环境当然是优势,但是得考虑清楚你们是否真的需要这个优势,遇到问题有没有解决的能力。
Alipne Linux 由于使用了 musl libc,如果是那种专门在 CI 服务器的宿主机系统上构建应用再打包为镜像的流程(这是一种很常见的模式),就必须使用交叉编译的方式构建应用。需要交叉编译就不可避免的会遇到各种麻烦和风险。
还有一个较大的问题是依赖过少,比如在安装 php 的时候他不会自带 php-mysqli 等插件(实际上什么插件都不会自动安装)。
镜像获取/安装
docker
alpine Linux 主要用在 docker 容器中。直接 pull alpine 即可获取。大小仅5MB,非常推荐作为一些大规模启动的镜像的基础镜像。
docker pull alpine
虚拟机
镜像下载地址:https://dl-cdn.alpinelinux.org/alpine/v3.16/releases/x86_64/alpine-virt-3.16.2-x86_64.iso
因为占用小的缘故,把它拿去当作虚拟机做一些测试也非常合适。
安装
这里以 esxi 为例,创建新的虚拟机,名称和兼容性以实际需求为准,操作系统选 Linux,系统版本选 其他 Linux(64 位)。
CPU、内存选项依照虚拟机实际需求而定,CD/DVD 驱动器 选择 esxi 已经上传至服务器上的 ISO 文件。
系统版本可以随便选。虚拟机的配置也可以依照后续需求再去修改,所以可以随意配置,能运行就行。
添加虚拟机后启动即可,初始状态用户名输入 root
即可登入到系统里。
登入到系统后,输入 setup-alpine
,开始系统的初始化和安装。安装过程非常简单快捷,大部分参数没有特殊需求的情况下可以直接使用默认配置(直接回车)
,只有以下几个注意项。
- Enter mirror numer (1-73) or URL to add:可以在这里选择源,也可以直接回车后面再去配置。
- Allow root ssh login:默认 ssh 不允许 root 登入,可以输入 yes 来允许 root 登入。
- Whic disk(s) would you like to use:他会列出你所有的硬盘,你需要选择你的硬盘。
- How would you like to use it:是否写入磁盘,选 sys。
- WARNING Erase the above disk(s) and continue:输入 y 确定擦除磁盘并继续。
待进度条加载完毕后即完成安装。
加粗项(3、4、5)是必选的,这样才可以将系统写入磁盘,不写入磁盘会导致重启虚拟机将导致配置失效和弹出 ISO 文件后无法启动虚拟机。
apk 包管理工具
alpine 提供了非常好用的apk软件包管理工具,通过apk –help命令查看完整的包管理命令。软件包源地址路径储存在 /etc/apk/repositories
文件里。该文件首行默认为 /media/cdrom/apks,一般情况下都会删除首行。如果前面安装系统时选择的源是默认源,可以使用一下命令改为清华大学源。
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
傻瓜式配置,直接运行以下命令即可:
echo 'http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/main
http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/community' > /etc/apk/repositories
常用命令
apk update:新本地仓库索引
apk add <package>:添加指定包
apk add --no-cache <package>:添加指定包,并且不使用本地cache进行安装,避免产生无用的缓存安装文件
apk del <package>:删除指定包,会连同安装的其他依赖一同删除
apk list:包的列表信息
openRC 服务管理
alpine linux 采用openrc来管理init系统。通过 apk add openrc
来安装 openrc。
启动/停止/重启服务
rc-service 用法与 service 命令相同。
- rc-service <name> start:启动服务
- rc-service <name> stop:停止服务
- rc-service <name> restart:重启服务
查看服务
- rc-status:查看启动的服务
- rc-status -a:查看所有运行级别的服务
- rc-status -s:查看服务列表
启动项
- rc-update add <name> [default | boot]:将一个服务设置为开机自启,如果不懂 default 和 boot 的是什么那就别加这个参数。
- rc-update del <name> :将一个服务从自启动中删除。
技术分享
欢迎各位小伙伴来此交流信息安全与寻找各种资源。
击链接加入QQ频道【信息安全】:https://pd.qq.com/s/71e776wtz
更多推荐
所有评论(0)