Alpine

概述

分支特点

分支				内核				驱动				特点
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
Standard       linux-lts       [Full-Drivers] 包含全量物理外设驱动(显卡/音频/USB/网卡),适用于所有主流物理硬件。
Virtual        linux-virt      [Virt-Modules] 仅保留 Virtio/Hyper-V/VMXNET3 等虚拟化总线驱动,针对 KVM/VM 深度减脂。
Extended       linux-lts       [RAM-Overlay]  预装微代码(Microcode)与常用工具,系统加载至内存运行,极大提升 IO 响应速度。
Netboot        linux-lts       [Initramfs]    内核与根文件系统分离,仅含网络引导核心模块,支持 PXE 无盘远程部署与快速扩容。
Raspberry Pi   linux-rpi       [BCM-Drivers]  针对树莓派 SoC 定制内核,集成 Broadcom GPU 与 GPIO 驱动,支持特定引导固件。
Mini rootfs    None (Shared)   [None]         不含内核与驱动,体积最小(约 5MB),完全依赖宿主机内核,专为 Docker 容器定制。
Generic U-Boot linux-lts       [U-Boot-Tar]   集成通用引导程序 (Bootloader),适配嵌入式 ARM 设备,便于 SD 卡或 Flash 启动。
Xen            linux-xen       [Hypervisor]   内置 Xen Hypervisor 控制域模块,专门针对虚拟化管理机 (Dom0) 进行底层权限优化。

部署

WSL2部署

vmware部署

  • 创建虚拟机
    • 2C1G10GB仿博客服务器
    • vnet0桥接08:00:27:49:D6:EC,继承90IP
  • 启动进live
    • 加载ISO:alpine-standard-3.23.3-x86_64.iso
    • live模式:启动虚拟机自动进live模式
    • 登录:用户root密码无
  • 临时网卡
    • 查看网卡:ip link
    • 激活网卡:ip link set eth0 up
    • 获取IP:udhcpc -i eth0
    • 验证联网:ping www.baidu.com
  • 安装系统
    • 安装向导:setup-alpine
    • 不确定的都直接回车
    • 键盘布局:keyboard layout=cn两次
    • 主机名:hostname=max2alpine
    • 管理员密码:    
    • 包源:清华源=13, 南京=15,自动检测速度最快的源=f
    • 还能创建用户ghost,但是输入ssh无法粘贴,顺带安装openssh
    • 时间同步选 chrony
    • 硬盘用途:use=sys;erase=y(耗时很长,感觉n跳过也行)
    • 完成后reboot重启
  • root用户临时开启密码远程

    vi /etc/ssh/sshd_config
    # PermitRootLogin prohibit-password
    PermitRootLogin yes
    PubkeyAuthentication yes			# 启用公钥认证
    
    # (可选)
    PasswordAuthentication no			# 禁用密码认证
    # 只对 ghost 用户禁用密码,其他用户保留密码登录
    Match User ghost
        PasswordAuthentication no
        PubkeyAuthentication yes
    
    rc-service sshd restart

设置

上网设置

  • 网卡

    ------------------ udhcpc 手动获取ip ---------------
    ip link							# 查看网卡
    ip link set eth0 up				# 激活网卡
    udhcpc -i eth0					# 获取IP
    ping www.baidu.com				# 验证联网
    ------------------ dhcpcd 智能获取ip ---------------
    sudo apk add dhcpcd				# 更智能的 DHCP 客户端
    vi /etc/network/interfaces		# 注释旧网卡管理
    	# auto eth0
    	# iface eth0 inet dhcp
    sudo rc-update add dhcpcd default
    sudo rc-service dhcpcd start

系统初始化

  • 更新源

    # 注释掉官方源
    sed -i '/community/s/^#//' /etc/apk/repositories
    apk update
    apk add sudo		#后面用到的sodu管理
    # 顺带安装
    apk add jq curl rsync
  • vi支持中文

    # 自带vi 本身就不支持中文字符,安装成类似centos的大vi
    apk add vim
    rm -f /usr/bin/vi;ln -s /usr/bin/vim /usr/bin/vi
  • 标准的时间文件GMT+8

    -------------安装chrony---------------
    sudo apk add chrony					# 安装同步程序
    ls -l /etc/init.d/chronyd			# 确认同步程序
    sudo rc-update add chronyd default	# 开机自启
    sudo rc-service chronyd start		# 启动服务
    -------------偏差跳变----------------
    sudo vi /etc/chrony/chrony.conf
    # 允许在任何时候,只要偏差超过 1 秒,就无限制地立即跳变对时 (重点)
    makestep 1.0 -1
    # 启动时如果偏差大,在前 10 次时钟更新中允许跳变
    initstepslew 10 pool.ntp.org
    # 记录系统时钟增益或损耗的速率
    driftfile /var/lib/chrony/chrony.drift
    # 将系统时钟同步到硬件实时时钟 (RTC)
    rtcsync
    # 关闭命令端口(安全性考虑)
    cmdport 0
    -------------提供标准的时区时间文件,供容器映射---------------
    sudo apk add tzdata
    sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    echo "Asia/Shanghai" | sudo tee /etc/timezone
  • alpine docker 代理设置(linux通用)

docker

  • 安装docker

    apk add docker				# 安装 Docker 依赖与引擎
    rc-update add docker boot	# 启动 Docker 服务并设置开机自启
    dockerd  					# 验证 Docker 是否安装成功
    rc-service docker zap		# Alpine 的 OpenRC需要手动处理
    rc-update add cgroups boot	# Alpine 需要手动挂载必要的 cgroups
    service cgroups start
    service docker start
    service docker status		# 确认服务状态
  • docker国内镜像

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": [
        "https://docker.1ms.run",
        "https://dockerproxy.net",
        "https://proxy.vvvv.ee",
        "https://dockerproxy.link"
      ]
    }
    EOF
    
    # alpine
    sudo rc-service docker restart
  • alpine docker 代理设置(linux通用)
  • 安装docker-compose

    # 自动安装
    apk add docker-compose
    
    # 手动安装:加代理的一句话安装 + 执行权限
    COMPOSE_VERSION=$(curl -s --socks5 192.168.1.120:7890 https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f4) && curl -L --socks5 192.168.1.120:7890 "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
    
    # 验证
    docker-compose --version
  • alpine docker 快速命令设置

系统其它

  • 配置用户和ssh

    su - ghost
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh  					# 必须700,权限太宽会被SSH拒绝
    vi ~/.ssh/authorized_keys 			# 粘贴公钥
    chmod 600 ~/.ssh/authorized_keys  	# 必须600
    chown -R ghost:ghost ~/.ssh  		# 确保归属ghost用户
  • ll命令支持

    # root用户执行
    echo "alias ll='ls -l'" >> /etc/profile
    # ghost用户执行
    echo "alias ll='ls -l'" >> ~/.profile
  • 用户提权

    su -
    visudo # 修改sodu配置
    
    ghost ALL=(ALL:ALL) ALL
    ghost ALL=(ALL) NOPASSWD: /bin/rm -rf /www/*, /bin/rm -f /www/*, /bin/mkdir -p /www/*, /bin/mkdir /www/*, /bin/find /www/*, /bin/tar -* /www/*, /bin/tar -* -C /, /sbin/apk, /home/ghost/backupGhost.sh, /bin/rm -rf /home/ghost/*
    
    如果损坏了,物理进服务器运行 pkexec visudo
    
    adduser ghost docker
    service docker restart
    重新连接ssh,才会生效
  • 时间同步

    # 安装NTP时间同步服务
    apk add chrony
    
    # 启动并设置开机自启
    rc-service chronyd start
    rc-update add chronyd default
    
    # 手动同步时间(立即生效)
    chronyc makestep
  • 修改网络名

    echo "vm-alpine" > /etc/hostname
    hostname -F /etc/hostname

应用

恢复应用

  • docker net

    docker network create ghost_net
  • 上传并解压www

    sudo tar -xzvpf ghost20250701090751.tar.gz -C /
    sudo chown -R 1000:1000 /www # 递归修改 镜像内部 UID 通常是 1000
  • 启动应用

    docker-compose -f /www/mariadb/docker-compose.yml up -d
    docker-compose -f /www/nginx/docker-compose.yml up -d
  • 服务器互传

    rsync -avP -e "ssh -c aes128-ctr -o StrictHostKeyChecking=no" /www/hermes/ x99@192.168.1.142:/www/hermes/at