强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

Alpine Linux 完全指南 / 第 02 章:安装方式

第 02 章:安装方式

在不同平台上安装 Alpine Linux 的完整指南。

2.1 下载与镜像选择

Alpine Linux 提供多种镜像类型,适用于不同场景。

镜像类型

镜像类型说明大小适用场景
Standard标准安装镜像~200 MB物理机/虚拟机完整安装
Extended扩展安装镜像~400 MB离线安装、桌面环境
Netboot网络引导镜像~50 MBPXE 网络安装
Minirootfs最小根文件系统~3 MB容器/嵌入式/chroot
Raspberry Pi树莓派专用镜像~100 MBARM 设备
Generic Cloud云平台镜像~80 MBAWS/GCP/Azure
Virtual虚拟机镜像~80 MBKVM/VirtualBox/VMware
OCIDocker 镜像~5 MBDocker/Podman

下载与校验

# 下载 ISO 镜像
wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-standard-3.20.3-x86_64.iso

# 下载校验文件
wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-standard-3.20.3-x86_64.iso.sha256

# 校验镜像完整性
sha256sum -c alpine-standard-3.20.3-x86_64.iso.sha256

# 导入公钥并验证签名
wget https://alpinelinux.org/keys/ncopa.asc
gpg --import ncopa.asc
gpg --verify alpine-standard-3.20.3-x86_64.iso.asc

2.2 虚拟机安装(VirtualBox / KVM)

VirtualBox 安装

# 1. 创建虚拟机
#    - 类型: Linux
#    - 版本: Other Linux (64-bit)
#    - 内存: 512 MB(最小)~ 2048 MB(推荐)
#    - 硬盘: 8 GB(最小)~ 20 GB(推荐)
#    - 网络: NAT 或桥接

# 2. 挂载 ISO 镜像并启动

# 3. 登录系统(默认 root 用户,无密码)
root

setup-alpine 自动安装

# 运行安装向导
setup-alpine

# 向导将依次询问以下配置:
# =============================================
# 1. 键盘布局         -> us (或其他)
# 2. 主机名           -> alpine-dev
# 3. 网络接口         -> eth0 (DHCP)
# 4. Root 密码        -> [设置密码]
# 5. 时区             -> Asia/Shanghai
# 6. 代理             -> none
# 7. NTP 客户端       -> chrony
# 8. APK 仓库镜像     -> 自动选择或手动指定
# 9. SSH 服务器       -> openssh
# 10. 磁盘安装目标    -> sda
# 11. 安装类型        -> sys (完整安装)
# 12. 额外安装磁盘    -> 提供额外空间
# =============================================

手动安装(sys 模式)

# 创建分区
fdisk /dev/sda
# n -> p -> 1 -> 回车 -> +512M  (boot 分区)
# n -> p -> 2 -> 回车 -> 回车    (root 分区)
# t -> 1 -> 83                   (Linux 类型)
# w                              (写入)

# 格式化分区
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2

# 挂载分区
mount /dev/sda2 /mnt
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot

# 安装系统
setup-disk -m sys /mnt

# 安装引导程序
extlinux --install /mnt/boot

# 写入 MBR 引导记录
dd if=/usr/share/syslinux/mbr.bin of=/dev/sda bs=440 count=1 conv=notrunc

# 生成配置文件
cat > /mnt/boot/extlinux.conf << 'EOF'
DEFAULT Alpine
PROMPT 1
TIMEOUT 50

LABEL Alpine
  LINUX vmlinuz-lts
  INITRD initramfs-lts
  MODULES=ext4
  APPEND root=/dev/sda2 modules=ext4
EOF

# 重启
reboot

安装模式说明

模式命令说明
syssetup-disk -m sys /mnt完整安装到磁盘,推荐用于服务器
datasetup-disk -m data /mnt仅作为数据分区挂载
lvmsetup-disk -m lvm /mnt使用 LVM 逻辑卷管理

2.3 KVM/QEMU 安装

# 创建虚拟机磁盘
qemu-img create -f qcow2 alpine.qcow2 20G

# 启动安装
qemu-system-x86_64 \
  -m 2048 \
  -smp 2 \
  -cdrom alpine-standard-3.20.3-x86_64.iso \
  -drive file=alpine.qcow2,format=qcow2 \
  -net nic -net user \
  -boot d

# 使用 virt-install(推荐)
virt-install \
  --name alpine-vm \
  --ram 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/alpine.qcow2,size=20 \
  --cdrom ~/Downloads/alpine-standard-3.20.3-x86_64.iso \
  --os-variant alpinelinux3.20 \
  --network bridge=virbr0

2.4 Docker 容器安装

这是最常见的 Alpine 使用方式。

基本使用

# 拉取最新镜像
docker pull alpine:3.20

# 运行交互式容器
docker run -it --rm alpine:3.20 sh

# 查看镜像大小
docker images alpine
# REPOSITORY   TAG     SIZE
# alpine       3.20    7.73MB

# 对比 Ubuntu
docker images ubuntu
# REPOSITORY   TAG       SIZE
# ubuntu       latest    77.8MB

Dockerfile 示例

# 基础 Web 服务器
FROM alpine:3.20

# 设置时区
RUN apk add --no-cache tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata

# 安装必要工具
RUN apk add --no-cache \
    nginx \
    curl \
    tini

# 配置 Nginx
RUN mkdir -p /run/nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY index.html /var/www/html/

EXPOSE 80

# 使用 tini 作为 PID 1
ENTRYPOINT ["tini", "--"]
CMD ["nginx", "-g", "daemon off;"]

多架构支持

# Alpine 支持多种架构
# - x86_64 (amd64)
# - aarch64 (arm64)
# - armv7 (armhf)
# - armhf
# - ppc64le
# - s390x
# - riscv64

# 拉取 ARM64 镜像
docker pull --platform linux/arm64 alpine:3.20

# 构建多架构镜像
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest .

2.5 WSL 安装(Windows Subsystem for Linux)

方式一:通过 WSL 导入

# 1. 下载 Alpine minirootfs
# https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-minirootfs-3.20.3-x86_64.tar.gz

# 2. 创建目录
mkdir C:\WSL\Alpine

# 3. 导入 WSL
wsl --import Alpine C:\WSL\Alpine .\alpine-minirootfs-3.20.3-x86_64.tar.gz

# 4. 启动
wsl -d Alpine

方式二:WSL 内初始化

# 进入 Alpine 后的初始化配置

# 安装基础包
apk update && apk upgrade
apk add bash openssh-client curl wget sudo

# 配置用户(替代 root 使用)
adduser myuser
addgroup myuser wheel

# 安装 sudo
apk add sudo
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel

# 配置 DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# 配置 APK 源
setup-apkrepos -1

# 设置 locale(可选)
apk add musl-locales
export MUSL_LOCPATH=/usr/share/i18n/locales/musl
export LC_ALL=zh_CN.UTF-8

WSL 配置文件

# %USERPROFILE%\.wslconfig
[wsl2]
memory=4GB
processors=2
localhostForwarding=true

[experimental]
autoMemoryReclaim=gradual
sparseVhd=true
# /etc/wsl.conf
[boot]
systemd=false

[network]
generateResolvConf=true

[automount]
enabled=true
options="metadata,umask=22,fmask=11"

[interop]
enabled=true
appendWindowsPath=true

2.6 树莓派安装

# 1. 下载树莓派镜像
wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/aarch64/alpine-rpi-3.20.3-aarch64.tar.gz

# 2. 写入 SD 卡(替换 /dev/sdX 为实际设备)
#    ⚠️ 警告:此操作将擦除 SD 卡所有数据!
dd if=alpine-rpi-3.20.3-aarch64.tar.gz of=/dev/sdX bs=4M status=progress

# 3. 或手动解压到 FAT32 分区
mkfs.vfat /dev/sdX1
mount /dev/sdX1 /mnt
tar -xzf alpine-rpi-3.20.3-aarch64.tar.gz -C /mnt
umount /mnt

# 4. 插入 SD 卡并启动树莓派

# 5. SSH 连接
ssh root@<树莓派IP>

# 6. 运行安装向导
setup-alpine

# 7. 安装到系统盘(可选)
# 将系统从 SD 卡安装到 USB SSD
setup-disk -m sys /dev/sda

2.7 PXE 网络启动安装

# 在 PXE 服务器上配置
# /tftpboot/pxelinux.cfg/default

DEFAULT alpine
PROMPT 1
TIMEOUT 50

LABEL alpine
  KERNEL alpine/vmlinuz-lts
  INITRD alpine/initramfs-lts
  APPEND ip=dhcp alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.20/main modloop=http://mirror.example.com/alpine/boot/modloop-lts

2.8 安装后配置

基础配置清单

# 1. 更新系统
apk update && apk upgrade

# 2. 安装常用工具
apk add bash bash-completion curl wget vim htop tmux

# 3. 设置时区
setup-timezone Asia/Shanghai

# 4. 配置网络
setup-interfaces  # 交互式配置

# 5. 配置 DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf

# 6. 安装 SSH
apk add openssh
rc-update add sshd
rc-service sshd start

# 7. 配置 SSH 安全选项
cat >> /etc/ssh/sshd_config << 'EOF'
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
EOF

# 8. 创建普通用户
adduser -G wheel -s /bin/bash myuser
apk add sudo
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel

# 9. 启用社区仓库
vi /etc/apk/repositories
# 取消注释 community 行

# 10. 设置主机名
echo "alpine-server" > /etc/hostname
hostname -F /etc/hostname

网络配置文件

# /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    hostname alpine-server

# DHCP 配置
auto eth0
iface eth0 inet dhcp

2.9 安装方式对比

方式难度耗时适用场景
Docker1 分钟开发、微服务、CI/CD
WSL5 分钟Windows 开发环境
VirtualBox⭐⭐10 分钟学习、测试
KVM/QEMU⭐⭐10 分钟服务器虚拟化
物理机 sys⭐⭐⭐20 分钟生产服务器
树莓派⭐⭐15 分钟IoT、家庭服务器
PXE⭐⭐⭐⭐30 分钟批量部署

2.10 注意事项

⚠️ 安全警告

  • 安装完成后立即设置 root 密码
  • 不要以 root 运行日常操作,创建普通用户
  • 生产环境务必禁用密码登录,使用 SSH 密钥认证
  • 定期执行 apk update && apk upgrade 保持系统安全

💡 最佳实践

  • 虚拟机安装建议使用 sys 模式,确保引导正常
  • Docker 使用时优先选择 alpine:3.20 标签而非 latest
  • WSL 环境建议先配置好 DNS 再安装其他包
  • 树莓派安装建议使用 aarch64 镜像(支持 64 位)

扩展阅读


上一章第 01 章:Alpine Linux 简介 下一章第 03 章:基础操作