本地容器化运行的最小 Linux —— Alpine Linux‌

harrysh 默认分类

Alpine Linux 是一个主打安全、轻量的独立Linux发行版‌,因为它体积小、资源占用低,特别适合用在Docker容器和嵌入式设备上,官网是alpinelinux.org 。‌‌‌

这系统有啥过人之处

体积特别小‌:容器镜像只有约5MB,比Ubuntu的200MB小得多,完整桌面环境也就150MB左右 。
安全设计到位‌:所有用户态程序都编译成位置无关可执行文件,内置PaX内存保护和栈破坏防御技术,默认不以root运行服务 。
用musl libc替代glibc‌:这是它轻量的关键,再配合BusyBox工具集,把常用命令都集成在一起 。
包管理用apk‌:搜索、安装、删除、升级软件都很方便,命令和Arch的pacman类似 。‌‌‌
哪些场景最适合用它

容器化部署‌:Docker和Kubernetes官方都推荐它作为基础镜像,微服务和无服务器架构首选 。
网络设备‌:路由器、防火墙、嵌入式交换机等需要低资源消耗的设备 。
老旧硬件复用‌:512MB内存以下的设备也能跑,可以改造旧电脑当NAS或轻量服务器 。
云原生应用‌:Rancher、Harbor等平台底层系统,AWS Lambda、Google Cloud Functions运行时环境 。‌‌‌
想试试怎么入手

下载镜像‌:去官网下载ISO镜像或直接用docker pull alpine拉取容器镜像 。
安装方式‌:可以像其他Linux一样安装到硬盘,也有diskless模式从内存运行,改动用lbu工具保存到.apkovl文件 。
图形界面‌:3.24版本开始支持GNOME 50、KDE Plasma 6.6、COSMIC和Sway 1.12等桌面环境,但默认还是命令行界面 。
软件仓库‌:主要用main仓库(核心组件),community仓库放第三方应用,testing仓库是实验性功能 。‌‌‌

这里为你整理了一份 ‌Alpine Linux 常用命令速查表‌。

Alpine Linux 与其他主流发行版(如 Ubuntu/CentOS)最大的不同在于它使用 apk 作为包管理器,使用 openrc 管理服务,且默认没有 systemctl。掌握以下命令能帮你快速上手。

  1. 软件包管理 (APK)
    Alpine 使用 apk (Alpine Package Keeper) 来管理软件,类似于 Ubuntu 的 apt 或 CentOS 的 yum/dnf。

操作 命令示例 说明
‌更新索引‌ apk update 从仓库获取最新的软件包列表(安装前建议执行)
‌安装软件‌ apk add vim curl 安装一个或多个软件
‌无缓存安装‌ apk add --no-cache vim ‌推荐在 Docker 中使用‌,不保留缓存索引,减小镜像体积
‌搜索软件‌ apk search nginx 搜索可用的软件包
‌查看已安装‌ apk info 列出所有已安装的软件包
‌卸载软件‌ apk del vim 删除指定的软件包
‌升级系统‌ apk upgrade 升级所有已安装的软件到最新版本
‌清理缓存‌ rm -rf /var/cache/apk/* 手动清理下载的安装包缓存

  1. 服务管理 (OpenRC)
    Alpine 不使用 systemd,而是使用 openrc。管理服务的核心命令是 rc-service 和 rc-update。

操作 命令示例 说明
‌启动服务‌ rc-service sshd start 立即启动 sshd 服务
‌停止服务‌ rc-service sshd stop 立即停止 sshd 服务
‌重启服务‌ rc-service sshd restart 重启服务
‌查看状态‌ rc-service sshd status 查看服务当前运行状态
‌开机自启‌ rc-update add sshd boot 将服务添加到默认运行级别(开机自动启动)
‌取消自启‌ rc-update del sshd boot 移除开机自启
‌列出服务‌ rc-status 查看当前所有服务的状态

  1. 网络配置
    Alpine 的网络配置通常通过编辑 /etc/network/interfaces文件完成,或者使用 setup-interfaces 向导。

‌静态 IP 配置示例‌ (/etc/network/interfaces):

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1

‌重启网络服务‌:

rc-service networking restart
#或者
/etc/init.d/networking restart

‌查看 IP 地址‌:

ip addr show
#或者如果安装了
net-tools ifconfig
  1. 系统基础设置
    ‌修改软件源(换国内源)‌:
    为了加速下载,建议将默认源替换为国内镜像(如阿里云、清华源)。

以替换为阿里云源为例 (假设版本为 v3.18,请根据实际版本调整)
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk update
‌设置时区‌:
apk add tzdata cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone

‌开启 SSH 远程登录‌:
Alpine 默认不允许 root 远程登录,需修改配置。

#1. 安装 
openssh apk add openssh-server
#2. 修改配置允许 root 登录 (生产环境建议创建普通用户) 
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
#3. 启动 ssh 服务并设置开机自启 
rc-service sshd start rc-update add sshd boot

‌添加新用户‌:

adduser myuser passwd myuser
#如果需要 sudo 权限,需先安装 sudo: apk add sudo,并将用户加入 wheel 组
addgroup myuser wheel
  1. 其他常用命令
    ‌重启/关机‌:
    reboot #重启
    poweroff #关机
    ‌查看系统版本‌:
    cat /etc/os-release
    ‌文本编辑‌:
    Alpine 默认自带 vi 编辑器。如果需要更友好的体验,可以安装 vim 或 nano。
    apk add vim

💡 给新手的特别提示
‌Docker 中的最佳实践‌:在 Dockerfile 中使用 Alpine 时,尽量合并 RUN 指令并使用 --no-cache,例如:
RUN apk add --no-cache python3 py3-pip && rm -rf /var/cache/apk/*
‌缺少常见命令‌:Alpine 非常精简,可能缺少 curl, wget, git, bash 等常用工具。如果找不到命令,先用 apk search <命令名> 查找对应的包并安装。
‌Musl libc‌:Alpine 使用 musl libc 而不是常见的 glibc。这意味着某些为 glibc 编译的二进制文件(如某些官方发布的 Java JDK 或 Node.js 二进制包)可能无法直接运行,需要寻找专门针对 Alpine/musl 编译的版本,或者安装 gcompat 兼容层。
你可以先从尝试安装一个软件(如 vim 或 curl)开始练习。

添加新评论