Alpine Linux 完全指南 / 第 02 章:安装方式
第 02 章:安装方式
在不同平台上安装 Alpine Linux 的完整指南。
2.1 下载与镜像选择
Alpine Linux 提供多种镜像类型,适用于不同场景。
镜像类型
| 镜像类型 | 说明 | 大小 | 适用场景 |
|---|---|---|---|
| Standard | 标准安装镜像 | ~200 MB | 物理机/虚拟机完整安装 |
| Extended | 扩展安装镜像 | ~400 MB | 离线安装、桌面环境 |
| Netboot | 网络引导镜像 | ~50 MB | PXE 网络安装 |
| Minirootfs | 最小根文件系统 | ~3 MB | 容器/嵌入式/chroot |
| Raspberry Pi | 树莓派专用镜像 | ~100 MB | ARM 设备 |
| Generic Cloud | 云平台镜像 | ~80 MB | AWS/GCP/Azure |
| Virtual | 虚拟机镜像 | ~80 MB | KVM/VirtualBox/VMware |
| OCI | Docker 镜像 | ~5 MB | Docker/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
安装模式说明
| 模式 | 命令 | 说明 |
|---|---|---|
| sys | setup-disk -m sys /mnt | 完整安装到磁盘,推荐用于服务器 |
| data | setup-disk -m data /mnt | 仅作为数据分区挂载 |
| lvm | setup-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 安装方式对比
| 方式 | 难度 | 耗时 | 适用场景 |
|---|---|---|---|
| Docker | ⭐ | 1 分钟 | 开发、微服务、CI/CD |
| WSL | ⭐ | 5 分钟 | 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 章:基础操作