Alpine Linux
1.0、参考
1.1、Alpine Linux简介
所属类型:GNU/Linux
base on:独立
所在国家:挪威
libcmusl libc
cli-Shell:ash
bin-utils:BusyBox
init-Soft:OpenRC
包管理器:apk
支持架构:x86_64aarch64
官方主页:https://www.alpinelinux.org

优点:轻量、安全

  • 内核都打了grsecurity/PaX补丁
  • 所有的程序都编译为PIE(Position Independent Executables)以增强系统的安全性

缺点:默认不支持本地化

Alpine Linux默认不支持本地化,导致除了以英语为母语的地区外的其他用户失去了其轻量的特点,这是因为musl libc没有相关的接口和工具。

注意:

Alpine Linux默认没有安装OpenRC的管理工具, 要使用这些管理工具,您需要自己安装:

apk add openrc
1.2、Alpine Linux distribution
发布时间发布名称
2019-10-213.10.3
2019-08-203.10.2
2019-07-113.10.1
2019-06-133.10.0
2019-05-093.9.4
2019-04-083.9.3
2019-03-043.9.2
2019-03-013.9.1
2019-01-293.9.0
2018-12-203.8.2
2018-09-113.8.1
2018-06-263.8.0
1.3、Alpine Linux Docker Image

下载Docker Offical Alpine Base Image,并以此创建、启动一个容器:

docker run --tty --interactive --name alpine --hostname alpine alpine:3.8 /bin/sh

我们对比一下常用的基于不同操作系统的基础镜像的文件大小(大约):

Alpine Linux5M
Ubuntu90M
CentOS200M

显然,基于Alpine LinuxDocker基础镜像的镜像文件很小, 镜像文件很小是有很大的优势的,这意味这下载的时间大大缩小了。

但是,基于Alpine LinuxDocker基础镜像的镜像文件很小,也有代价:

  • glibc替换为了musl libc,但是musl libc不支持国际化和本地化, 所以你想显示中文,还得安装glibc
  • bash替换为了ash,但是ash不支持数组特性, 但是,我们大多数已经写好的脚本,基本上是以bash为标准的。

实际上,基于Alpine LinuxDocker基础镜像的出现, 是为了给不需要国际化和本地化的那些人使用的,比如本来就使用英语的国家。中国人要使用,我们经常要打印中文日志, 这时候,默认的不支持中文的显示,所以,只会是乱码。要想不乱码,只能安装glibc并配置上中文支持。 具体办法:点我

1.4、Alpine Linux ISO安装镜像
1.5、Alpine Linux rootfs + chroot

step1、安装依赖工具

step2、创建一个用于存放Alpine Linux rootfs的文件夹

install -d alpine-linux-x86-64

step3、使用curl命令下载Alpine Linux rootfs镜像 (

curl -LO https://dl-cdn.alpinelinux.org/alpine/v3.16/releases/aarch64/alpine-minirootfs-3.16.2-aarch64.tar.gz

step4、使用tar命令解压Alpine Linux rootfs镜像

tar vxf alpine-minirootfs-3.16.2-x86_64.tar.gz -C alpine-linux-x86-64

step5、使用chroot命令执行Alpine Linux rootfs中的命令

sudo chroot alpine-linux-x86-64 apk add bash

sudo chroot alpine-linux-x86-64 bash

sudo chroot alpine-linux-x86-64 /bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/sh --login
1.6、Alpine Linux rootfs + proot

step1、安装依赖工具

step2、创建一个用于存放Alpine Linux rootfs的文件夹

install -d alpine-linux-aarch64

step3、使用curl命令下载Alpine Linux rootfs镜像 (

curl -LO https://dl-cdn.alpinelinux.org/alpine/v3.16/releases/aarch64/alpine-minirootfs-3.16.2-aarch64.tar.gz

step4、使用tar命令解压Alpine Linux rootfs镜像

tar vxf alpine-minirootfs-3.16.2-aarch64.tar.gz -C alpine-linux-aarch64

step5、使用proot命令执行Alpine Linux rootfs中的命令

proot -q qemu-aarch64 -S alpine-linux-aarch64 apk add bash

proot -q qemu-aarch64 -S alpine-linux-aarch64 bash

proot -q qemu-aarch64 -S alpine-linux-aarch64 /bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/sh --login