## Alpine 是什么
Alpine Linux 是一个面向安全的轻量级 Linux 发行版。基于 musl libc 和 busybox,镜像体积仅 5MB 左右。Docker 官方镜像很多都基于 Alpine。
如果你有一台低配 VPS(512MB 内存),Alpine 比 Ubuntu 省下约 80% 的内存开销。
## Alpine vs Ubuntu 资源对比
| 项目 | Alpine 3.19 | Ubuntu 22.04 |
|------|------------|-------------|
| 镜像大小 | 5 MB | ~700 MB |
| 安装后磁盘 | ~130 MB | ~2.5 GB |
| 空闲内存占用 | ~30 MB | ~150 MB |
| 包管理 | apk | apt |
| init 系统 | OpenRC | systemd |
## 安装 Alpine
适合在 VPS 上安装时,选择 Alpine 镜像即可。或者用 netboot:
```bash
# 下载 Alpine
wget https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/alpine-standard-3.19.0-x86_64.iso
```
安装过程比 Ubuntu 稍复杂,但跟着 setup-alpine 脚本走就行。
## 基础配置
```bash
# 更新软件源
apk update && apk upgrade
# 基础工具
apk add curl wget vim git bash openssh docker
# 设置时区
apk add tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 启动 Docker
rc-update add docker boot
service docker start
# 开启 SSH
rc-update add sshd
service sshd start
```
## apk 包管理速查
| 操作 | Alpine (apk) | Ubuntu (apt) |
|------|-------------|-------------|
| 更新索引 | apk update | apt update |
| 安装包 | apk add xxx | apt install xxx |
| 删除包 | apk del xxx | apt remove xxx |
| 搜索包 | apk search xxx | apt search xxx |
| 升级所有 | apk upgrade | apt upgrade |
| 查看信息 | apk info xxx | apt show xxx |
## 踩坑记录
**1. DNS 解析问题**
Alpine 默认使用 musl 的 DNS 解析器,某些情况下会出现解析失败。解决:
```bash
apk add bind-tools
# 在 /etc/resolv.conf 中添加
nameserver 1.1.1.1
```
**2. 部分软件无 Alpine 包**
有些软件只有 glibc 版本,需要额外处理:
```bash
# 安装 glibc 兼容层
apk add gcompat
```
**3. 时区问题**
很多 Docker 镜像不能正确识别 Alpine 的时区设置,需在 docker-compose 中显式指定:
```yaml
environment:
- TZ=Asia/Shanghai
```
## 适用场景
- **低配 VPS**:512MB/1GB 内存的机器
- **Docker 宿主机**:只跑容器,系统层越轻越好
- **边缘设备**:树莓派、路由器
- **CI/CD Runner**:轻量构建环境
## 不适用场景
- 需要大量编译安装的场景(部分编译工具在 Alpine 上有兼容问题)
- 必须使用 glibc 专有软件的(虽然可以装兼容层,但不如直接用 Ubuntu 省心)
- 不熟悉 Linux 的新手(文档比 Ubuntu 少)
如果你的服务器只跑 Docker,Alpine 是目前最优雅的选择。省下的内存留给你的服务不香吗?