Alpine Linux简介¶
Alpine Linux是针对安全目标的轻量级Linux发行版,基于musl libc和Busybox。
最初 Alpine Linux 起源于 LEAF (Linux Embedded Applicance Framework)项目,而 LEAF 项目则又是从一个非常小巧的 Linux Router Project(LRP)项目fork出来的。由此可见,Alpine从一开始其核心理念就是创建一个轻量级、精简的并且运行在内存中的防火墙/代理服务器/VPN专用发行版。
注解
Alpine Linux的创始人Natanael Copa在接受采访时解释Alpine Linux的构思:Alpine Linux想要实现的是从一个只读介质上启动并安装到内存中,并且一旦启动你就可以移除启动介质。你看,这是多么轻量级的适合部署在云计算的计算节点上的发行版,难怪Docker会选择Alpine作为运行Docker的基础操作系统。
2016年当Docker把官方Docker镜像库从Ubuntu切换到Alpine,Alpine的创始人Copa加入了Docker公司。
Alpine是一个技术人为技术人创造的Linux,其目的是技术人能够自己修复问题并将技能反馈给社区。除了Docker,Alpine也被用于很多安全相关的项目。
Alpine的一大特点是非常小巧,没有包含过多的内容。这种较小的发行版也更为安全和高效。
特性¶
- 轻量级: alpine linux主要用于嵌入式系统和服务器应用程序,所以采用了 busybox(替代大量的GNU程序) 、OpenRC(代替 Systemd进程管理器 ) 以及musl 库(用于替代glibc),通过这种简化使得操作系统非常小巧,避免浪费宝贵的系统资源。不过,这也带来了兼容性不足和功能缺乏。如果你的系统是自己完全掌控,只运行特定目标的应用,这种精简环境会带来性能提升和安全性加强。
- 稳定性和滚动升级: Alpine Linux使用2种发布模式:
edge
是滚动模式,相对稳定(可能一个周期中有些小问题)stable
是每6个月一个发布周期,发布周期内保持稳定修复edge
和stable
都会得到安全升级,并且stable
有2年的支持
- 独特的打包方式: Alpine包管理器是 Alpine Linux包管理apk ,执行效率很高的软件包管理器,有点类似 Arch Linux 的 Pacman ,使用
APKBUILD
打包脚本完成(类似Arch Linux的PKGBUILD
) - 社区驱动: Alpine社区相对其他发行版较小,主要的核心开发者沟通在
#alpine-linux
和#alpine-devel
IRC - 安全: Alpine的主要特点之一就是安全,通过精简系统使得受攻击面减小,特别适合嵌入系统和特定服务器领域。 ( 树莓派环境安装Alpine Linux )
注解
Top 23 alpine-linux Open-Source Projects 提供不少可以在alpine linux上借鉴的项目: