前言
本文介绍在安卓手机上利用 Termux 和 QEMU 运行 Alpine Linux 虚拟机,并在其中部署 Docker 服务的方法。主要步骤包括安装命令行工具、配置内网穿透、创建虚拟机环境以及安装 Docker。
一、安装命令行工具
1. 准备 Termux 安装包
从 GitHub 下载 Termux 安装包并安装到手机上。
2. 配置后台运行权限
以小米机型为例(其他机型步骤基本一致),打开设置搜索电池,进入电量和性能,再次点击应用配置,设置 Termux 后台无限制,保证应用后台可正常运行。
二、设置内网穿透
通过 Termux 安装并配置 cpolar 内网穿透,为本地端口分配公网地址,支持按需启用 HTTPS 与访问控制。
1. 安装 cpolar
打开 Termux 软件,等待初始化完成。创建配置文件目录:
mkdir -p $PREFIX/etc/apt/sources.list.d
添加 cpolar 下载源并更新仓库:
echo "deb [trusted=yes] http://termux.cpolar.com termux extras" >> $PREFIX/etc/apt/sources.list.d/cpolar.list
pkg update
执行安装命令:
pkg install cpolar
安装 termux 服务(注意:安装完成后需关闭并重新进入 Termux):
pkg install termux-services
启动 cpolar 内网穿透并设置开机自启:
sv up cpolar
sv-enable cpolar
在手机浏览器输入 http://localhost:9200 即可访问 cpolar Web UI 管理界面,使用官网注册账号登录。
注意:随机域名方式约每 24 小时自动更换一次地址,不适合长期访问或对外分享。若希望长期稳定免改配置地对外访问,建议使用固定域名方案。
三、安装手机版虚拟机 Alpine
1. 环境准备
安装 QEMU 模拟器作为核心工具。
更新 Termux 仓库:
pkg update && pkg upgrade
安装必要组件:
pkg install qemu-utils qemu-common qemu-system-x86-64-headless wget
准备工作目录:
mkdir ~/alpine && cd ~/alpine
下载镜像(以 v3.20 为例,建议使用针对虚拟化优化的 virt 版本 ISO 镜像):
wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-virt-3.20.2-x86_64.iso -O alpine.iso
创建 Alpine 的虚拟磁盘(建议至少 10G):
qemu-img create -f qcow2 alpine.qcow2 10G
2. 使用安装模式启动 Alpine
必须带上 -cdrom 和 -boot d 参数:
qemu-system-x86_64 -smp 4 -m 3072 -drive file=alpine.qcow2,if=virtio -netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -cdrom alpine.iso -boot d -nographic
3. 执行安装脚本
登录 root 后,输入:
setup-alpine
4. 关键步骤检查
在安装过程中请重点确认以下几项:
- Keyboard: us
- Hostname: 随意(如 alpine)
- Network: eth0 -> dhcp
- Mirror: 选择 f (find fastest) 或手动输入
- SSH: openssh
- Disk to use: vda
- How to use it: sys (表示安装完整系统到硬盘)
- 确认擦除:输入 y
5. 彻底关机
安装完成后看到提示,输入:
poweroff
6. 正常启动
移除安装镜像参数,从硬盘启动:
qemu-system-x86_64 -smp 4 -m 3072 -drive file=alpine.qcow2,if=virtio -netdev user,id=n1,hostfwd=tcp::2222-:22,hostfwd=tcp::3000-:3000 -device virtio-net,netdev=n1 -nographic
其中 hostfwd=tcp::3000-:3000 用于设置 Termux 外部对内 Docker 端口的映射。
四、Alpine 中安装 Docker
1. 开启 Community 仓库
Docker 位于 community 仓库中。编辑仓库配置文件:
vi /etc/apk/repositories
确保 community 行开头没有 #,或直接追加:
echo "https://dl-cdn.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories
2. 更新并安装 Docker
apk update
apk add docker docker-compose
3. 设置开机自启并启动服务
Alpine 使用 OpenRC 管理服务:
rc-update add docker boot
service docker start
4. 验证安装
docker version
若看到 Client 和 Server 的版本信息,说明 Docker 已成功运行。

