所属类型: | GNU/Linux |
base on: | 独立 |
所在国家: | 挪威 |
libc: | musl libc |
cli-Shell: | ash |
bin-utils: | BusyBox |
init-Soft: | OpenRC |
包管理器: | apk |
支持架构: | x86_64 、aarch64 |
官方主页: | https://www.alpinelinux.org |
优点:轻量、安全
grsecurity/PaX
补丁PIE(Position Independent Executables)
以增强系统的安全性缺点:默认不支持本地化
Alpine Linux
默认不支持本地化,导致除了以英语为母语的地区外的其他用户失去了其轻量的特点,这是因为musl libc没有相关的接口和工具。
注意:
Alpine Linux
默认没有安装OpenRC的管理工具, 要使用这些管理工具,您需要自己安装:
apk add openrc
发布时间 | 发布名称 |
---|---|
2019-10-21 | 3.10.3 |
2019-08-20 | 3.10.2 |
2019-07-11 | 3.10.1 |
2019-06-13 | 3.10.0 |
2019-05-09 | 3.9.4 |
2019-04-08 | 3.9.3 |
2019-03-04 | 3.9.2 |
2019-03-01 | 3.9.1 |
2019-01-29 | 3.9.0 |
2018-12-20 | 3.8.2 |
2018-09-11 | 3.8.1 |
2018-06-26 | 3.8.0 |
下载Docker Offical Alpine Base Image,并以此创建、启动一个容器:
docker run --tty --interactive --name alpine --hostname alpine alpine:3.8 /bin/sh
我们对比一下常用的基于不同操作系统的基础镜像的文件大小(大约):
Alpine Linux | 5M |
Ubuntu | 90M |
CentOS | 200M |
显然,基于Alpine Linux
的Docker基础镜像的镜像文件很小, 镜像文件很小是有很大的优势的,这意味这下载的时间大大缩小了。
但是,基于Alpine Linux
的Docker基础镜像的镜像文件很小,也有代价:
musl libc
,但是musl libc
不支持国际化和本地化, 所以你想显示中文,还得安装glibcash
,但是ash
不支持数组特性, 但是,我们大多数已经写好的脚本,基本上是以bash为标准的。实际上,基于Alpine Linux
的Docker基础镜像的出现, 是为了给不需要国际化和本地化的那些人使用的,比如本来就使用英语的国家。中国人要使用,我们经常要打印中文日志, 这时候,默认的不支持中文的显示,所以,只会是乱码。要想不乱码,只能安装glibc并配置上中文支持。 具体办法:点我。
Alpine Linux
团队提供了一个Shell脚本, 用来创建一个Alpine Linux
文件系统,然后通过chroot进入并操作。
1、使用wget下载该脚本:
wget https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.11.0/alpine-chroot-install
2、使用sha1sum验证脚本:
echo 'df472cbd2dc93eb0b3126d06209363c4fc328ea3 alpine-chroot-install' | sha1sum -c
3、赋予脚本执行权限:
chmod a+x alpine-chroot-install
4、执行该脚本,创建Alpine Linux
文件系统:
./alpine-chroot-install -b v3.9 -m https://mirrors.tuna.tsinghua.edu.cn/alpine
5、进入该环境:
/alpine/enter-chroot -u $USER ./build