💡 教程说明
本教程基于Amlogic S922X设备(OES/斐讯N1/玩客云等)+ Armbian 26.x 实测编写。Armbian是ARM设备上最流行的Linux发行版,刷好系统后第一件事就是换源和装Docker。
一、首次登录与基础设置
1.1 首次登录
ssh root@设备IP
1.2 确认设备型号
刷机后不确定设备型号?用这个命令确认:
hexdump -C /proc/device-tree/compatible | head -n 5
cat /proc/cpuinfo | grep "model name" | head -1
free -h
lsblk
二、更换国内软件源(必做)
Armbian默认源在国外,国内访问很慢。换成国内源后速度提升10倍以上。
2.1 一键换源脚本
cat > /root/change_source.sh << 'EOF'
#!/bin/bash
echo "=== 开始更换Armbian国内源 ==="
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp /etc/apt/sources.list.d/armbian.list /etc/apt/sources.list.d/armbian.list.bak
cat > /etc/apt/sources.list << 'DEB'
deb https://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free non-free-firmware
DEB
cat > /etc/apt/sources.list.d/armbian.list << 'ARM'
deb https://mirrors.ustc.edu.cn/armbian/ bookworm main contrib non-free
ARM
echo "=== 源替换完成,开始更新 ==="
apt update
apt upgrade -y
echo "=== 系统更新完成 ==="
EOF
chmod +x /root/change_source.sh
/root/change_source.sh
💡 其他可选源
- Debian源:阿里云、清华TUNA、中科大USTC、163
- Armbian源:中科大USTC(镜像最全)、清华TUNA
- 也可以用
armbian-config → Personal → Mirrors 图形化选择
2.2 安装基础工具
apt install -y \
curl wget htop vim nano \
git net-tools dnsutils \
unzip zip p7zip-full \
apt-transport-https ca-certificates \
gnupg lsb-release \
python3 python3-pip
三、Docker安装
3.1 官方脚本安装(推荐)
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
systemctl enable docker
systemctl start docker
docker --version
docker run --rm hello-world
3.2 安装Docker Compose
apt install -y docker-compose-plugin
docker compose version
3.3 配置Docker国内镜像加速(必做)
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://dockerproxy.com",
"https://docker.1panel.live",
"https://mirror.iscas.ac.cn"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
docker info | grep -A 5 "Registry Mirrors"
⚠️ 注意
国内Docker镜像源可能不定期失效。如果拉取镜像超时,尝试更换daemon.json中的镜像地址,或配置代理。
四、常用Docker容器一键部署
4.1 Portainer(Docker可视化管理)
docker run -d \
--name portainer \
--restart=always \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
访问 http://设备IP:9000,首次访问设置管理员密码。
4.2 青龙面板(自动化脚本)
docker run -dit \
--name qinglong \
--restart=always \
-p 5700:5700 \
-v /opt/qinglong/data:/ql/data \
whyour/qinglong:latest
访问 http://设备IP:5700,默认账号admin,密码admin。青龙面板支持京东签到、各种自动化脚本。
4.3 qBittorrent(BT下载)
docker run -d \
--name qbittorrent \
--restart=always \
-e PUID=0 -e PGID=0 \
-e TZ=Asia/Shanghai \
-e WEBUI_PORT=8085 \
-p 8085:8085 \
-p 6881:6881 -p 6881:6881/udp \
-v /opt/qbittorrent/config:/config \
-v /mnt/downloads:/downloads \
lscr.io/linuxserver/qbittorrent:latest
4.4 Alist(网盘聚合)
docker run -d \
--name alist \
--restart=always \
-v /etc/alist:/opt/alist/data \
-p 5244:5244 \
-e PUID=0 -e PGID=0 \
-e UMASK=022 \
xhofe/alist:latest
支持挂载百度网盘、阿里云盘、115、OneDrive、Google Drive等数十种网盘。
4.5 AdGuard Home(广告过滤)
docker run -d \
--name adguardhome \
--restart=always \
-v /opt/adguardhome/work:/opt/adguardhome/work \
-v /opt/adguardhome/conf:/opt/adguardhome/conf \
-p 3000:3000 -p 80:80 \
-p 53:53/tcp -p 53:53/udp \
adguard/adguardhome
把路由器DNS设为设备IP,全家设备去广告。
4.6 Uptime Kuma(服务监控)
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v /opt/uptime-kuma:/app/data \
louislam/uptime-kuma:1
监控网站/服务在线状态,宕机自动通知(支持Telegram、企业微信、邮件等)。
五、docker-compose 部署示例
多个容器建议用docker-compose统一管理:
mkdir -p /opt/stacks/media-server
cat > /opt/stacks/media-server/docker-compose.yml << 'EOF'
version: "3.8"
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: always
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- WEBUI_PORT=8085
ports:
- "8085:8085"
- "6881:6881"
- "6881:6881/udp"
volumes:
- /opt/qbittorrent/config:/config
- /mnt/downloads:/downloads
alist:
image: xhofe/alist:latest
container_name: alist
restart: always
ports:
- "5244:5244"
volumes:
- /etc/alist:/opt/alist/data
volumes:
portainer_data:
EOF
cd /opt/stacks/media-server
docker compose up -d
docker compose ps
docker compose logs -f
六、系统优化
6.1 时区设置
timedatectl set-timezone Asia/Shanghai
date
6.2 中文语言支持
apt install -y locales
sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=zh_CN.UTF-8
6.3 SWAP虚拟内存
2GB内存设备建议加2GB SWAP:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
free -h
6.4 风扇控制(OES设备)
cat /sys/class/thermal/thermal_zone0/temp
cat /sys/class/hwmon/hwmon0/pwm1
echo 255 > /sys/class/hwmon/hwmon0/pwm1
echo 0 > /sys/class/hwmon/hwmon0/pwm1
6.5 定时清理Docker
cat > /usr/local/bin/docker-clean << 'EOF'
#!/bin/bash
docker system prune -af --volumes
docker image prune -af
EOF
chmod +x /usr/local/bin/docker-clean
(crontab -l 2>/dev/null; echo "0 3 * * 0 /usr/local/bin/docker-clean") | crontab -
七、常见问题
Q1: apt update 报错或很慢?
A: 源没换成功。检查 /etc/apt/sources.list 和 /etc/apt/sources.list.d/armbian.list 是否正确替换为国内源。注意Debian版本(bookworm/bullseye)要对应。
Q2: Docker拉取镜像超时?
A: 配置国内镜像加速(见3.3节)。如果所有镜像源都失效,可以配置HTTP代理:
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/proxy.conf << 'EOF'
[Service]
Environment="HTTP_PROXY=http://代理IP:端口"
Environment="HTTPS_PROXY=http://代理IP:端口"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
systemctl daemon-reload
systemctl restart docker
Q3: 容器启动后访问不了?
A: 检查:
- 端口映射是否正确(-p 参数)
- 防火墙是否放行:
ufw status 或 iptables -L
- 容器是否正常运行:
docker ps -a
- 查看容器日志:
docker logs 容器名
Q4: 磁盘空间不足?
A: Docker镜像和容器占用大量空间。执行 docker system df 查看占用,docker system prune -a 清理未使用的镜像。建议把Docker数据目录移到大硬盘:
systemctl stop docker
mv /var/lib/docker /mnt/docker
ln -s /mnt/docker /var/lib/docker
systemctl start docker
Q5: Armbian怎么升级内核?
A: 用armbian自带工具:
uname -r
armbian-update
curl -fsSL https://github.com/ophub/amlogic-s9xxx-armbian/raw/main/build-armbian/scripts/update.sh | bash
八、相关教程