# 华为 Pura 70 Docker-Compose 配置实战:轻量级服务部署指南
## 前言
华为 Pura 70 搭载麒麟 9010 芯片,NPU 算力充足,配合 HarmonyOS Next 的分布式能力,可作为边缘计算节点运行轻量级 Docker 服务。本文基于该机型实测,演示 Docker-Compose 环境配置与典型服务部署。
## 一、环境准备
### 1.1 终端环境
Pura 70 通过 Termux(需从 F-Droid 安装,Google Play 版本存在兼容性问题)进入 Linux 环境。之所以选择 Termux 而非官方华为终端,是因为 HarmonyOS 对原生 Linux 环境存在文件系统权限限制,而 Termux 通过 Android 沙箱机制提供了相对完整的 Linux 操作体验。F-Droid 版本经过社区验证,兼容性优于 Google Play 版本,可避免因签名校验导致的核心组件异常。
“`bash
# Termux 基础配置
pkg update && pkg upgrade -y
pkg install openssh vim curl wget git
# 启用 proot-distro 运行 Ubuntu 环境
pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu
“`
proot-distro 机制说明:proot-distro 通过 PRoot 用户空间实现不依赖 root 的虚拟根文件系统挂载,其原理是在用户态模拟 chroot 和 mount 操作,使 Ubuntu 发行版能够在 Termux 的 Android 文件系统之上完整运行。对于 Pura 70 这类无法获取 bootloader 解锁码的设备,proot-distro 是唯一可行的 Linux 环境方案。需要注意 proot-distro 不支持内核模块加载,因此 Docker 的 containerd 运行时将替代传统的 dockerd 守护进程。
### 1.2 Docker 安装(Ubuntu 22.04 环境)
在 Ubuntu 22.04 环境下安装 Docker 需要解决 Android/Linux 混合内核的兼容性问题。标准 Docker 二进制包依赖 cgroup 层级管理和 namespace 隔离,而 Termux 环境下的 proot-distro 无法直接操作 host 的 cgroupfs。以下安装脚本针对该特殊环境进行了适配:
“`bash
# 添加 Docker 官方 GPG 密钥与仓库
apt-get update && apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg –dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | tee /etc/apt/sources.list.d/docker.list
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
“`
安装后验证步骤:
“`bash
# 验证 Docker 版本
docker –version
# Docker version 26.1.0, build 8a67e3f
# 验证 containerd 运行时
containerd –version
# containerd version 1.6.28, linux/amd64
# 测试容器运行能力
docker run –rm hello-world
“`
若出现 `docker: Cannot connect to the Docker daemon` 错误,需手动启动 containerd 并配置 socket 暴露:
“`bash
containerd &
sleep 3
dockerd –host=unix:///var/run/docker.sock &
sleep 5
docker info
“`
### 1.3 资源限制配置
Pura 70 物理内存 12GB,需限制 Docker 资源占用以避免与 Android 系统前台应用产生内存竞争。麒麟 9010 的内存分配策略在 HarmonyOS 下优先保障前台应用性能,后台容器的内存上限需严格控制。以下 daemon.json 配置针对移动设备特点进行了优化:
“`bash
# 创建 /etc/docker/daemon.json
cat > /etc/docker/daemon.json << 'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
},
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 1024,
"Soft": 1024
}
},
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 3,
"storage-driver": "vfs"
}
EOF
# 注意:storage-driver 使用 vfs 而非 overlay2
# 原因:proot 环境下 overlay2 需要宿主内核支持
# vfs 虽然性能略低,但兼容性最佳
```
资源配置策略建议:
| 服务类型 | 内存上限 | CPU 配额 | 适用场景 |
|---------|---------|---------|---------|
| 极轻量 | 128MB | 0.25核 | 纯数据收集、监控代理 |
| 轻量 | 256-512MB | 0.5核 | RSS聚合、书签服务 |
| 中量 | 512MB-1GB | 1核 | Home Assistant、物联网网关 |
| 重量 | 1-2GB | 1-2核 | PhotoPrism、媒体索引 |
## 二、典型 Docker-Compose 配置示例
### 2.1 轻量级 RSS 聚合服务(FreshRSS)
适合个人知识管理,资源占用低。FreshRSS 采用 PHP 编写,后端依赖 MySQL 或 SQLite,前端响应式设计适合移动端访问。该服务非常适合作为 Pura 70 上的个人信息枢纽,对接 IFTTT 或 n8n 实现自动化知识收集。
```yaml
# docker-compose.yml
version: '3.8'
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
ports:
- "8080:80"
environment:
- CRON_MIN=*/30
- FRESHRSS_ENV=production
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
mem_limit: 512m
cpus: 0.5
networks:
- local_net
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/?output=api"]
interval: 5m
timeout: 10s
retries: 3
networks:
local_net:
driver: bridge
```
FreshRSS 高级配置技巧:
```bash
# 安装推荐插件增强功能
mkdir -p freshrss/extensions
cd freshppa/extensions
# 推荐的插件组合:
# 1. AutoPagerize - 自动翻页加载
# 2. Nut忌穴 - 支持 Twitter/X 订阅
# 3. Marks - 文章标记与星标
# 4. AMP - Google AMP 加速
```
```bash
mkdir -p freshrss/{data,extensions}
docker-compose up -d
相关阅读:手机868 深圳报价