会了 Docker 基础命令后,最实用的玩法是把常用服务做成一套 compose 文件:博客、网盘、监控面板、数据库,一条命令全起来,换机器时一个目录拷走全恢复。这篇给出一套开箱即用的组合,覆盖个人服务器的常用服务。
本文基于 财富云计算 NAT 型云服务器(无独立公网 IP、价格比独立 IP 机型省一半以上)实践。前置基础见Docker 安装与基础命令,编排进阶见Docker Compose 编排实战。
一、这套组合是什么
| 服务 | 镜像 | 端口 | 用途 |
|---|---|---|---|
| AList | xhofe/alist | 5244 | 网盘文件列表,聚合各网盘 |
| Uptime Kuma | louislam/uptime-kuma | 3001 | 服务监控,挂了通知你 |
| Memos | neosmemo/memos | 5230 | 轻量笔记,速记想法 |
| Watchtower | containrrr/watchtower | — | 自动更新容器镜像 |
四个服务加起来内存占用约 500M,跑在游戏服同机互不干扰——资源隔离与端口规划见一台服务器多功能规划。
二、一键 compose 文件
# /opt/services/docker-compose.yml
version: "3.8"
services:
# 网盘文件列表
alist:
image: xhofe/alist:latest
container_name: alist
restart: unless-stopped
ports:
- "5244:5244"
volumes:
- ./alist/data:/opt/alist/data
environment:
- TZ=Asia/Shanghai
mem_limit: 256m
# 服务监控(游戏服挂了第一时间知道)
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./kuma/data:/app/data
mem_limit: 256m
# 轻量笔记
memos:
image: neosmemo/memos:latest
container_name: memos
restart: unless-stopped
ports:
- "5230:5230"
volumes:
- ./memos:/var/opt/memos
mem_limit: 128m
# 自动更新所有容器镜像
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 0 4 * * 1 # 每周一凌晨 4 点检查更新
mem_limit: 64m一条命令全起:
cd /opt/services
docker compose up -d
docker compose ps # 看状态
docker compose logs -f # 看日志三、关键配置说明
内存限额(和游戏服共存的关键)
每个服务都设 mem_limit——这是 compose 和游戏服同机的安全绳:某个服务内存泄漏也不会拖垮游戏服。限额思路见Docker 安全加固与资源限制。
数据持久化
所有数据都落在 ./服务名/ 目录下,换机器时:
# 旧机器
cd /opt/services && docker compose down
tar -czf ~/services-backup.tar.gz .
# 新机器
解压 → 装 Docker → docker compose up -d
# 全部服务和数据原地复活配合云服务器快照,迁移 = 恢复快照 + 起容器,十分钟。
自动更新的取舍
Watchtower 自动更新很方便,但游戏服容器不要交给它自动更新——游戏大更新要配套改配置,自动更新等于自动崩服。只让它管这些工具服务,游戏服手动更新。
四、NAT 型下的访问方式
这些服务都是 Web 界面,NAT 型映射 80/443 后用 Nginx 按域名分发:
# alist.yourdomain.com → 5244
server {
server_name alist.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5244;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# kuma.yourdomain.com → 3001(建议加 Basic Auth 或 IP 白名单)
server {
server_name kuma.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
}
}反向代理配置见Nginx 反向代理与多站点,端口映射前提见NAT 端口映射完全指南。管理类服务(Kuma)务必加访问控制,见服务器端口安全。
五、安全四件套(容器化也要装)
- 容器不映射管理端口到公网:Kuma、数据库这类只走 Nginx 反代 + 访问控制。
- 镜像来源可信:只用官方/知名社区镜像,别用来路不明的镜像(镜像里可以藏挖矿程序,见开源程序部署安全检查)。
- Docker socket 不给普通容器挂:Watchtower 挂 socket 是必要特权,其他服务一律不挂。
- 定期清理:
# 清理悬空镜像和停止的容器(磁盘救星)
docker system prune -f
# 大扫除(含未使用数据卷,慎用——会删没用上的卷)
docker system prune -f --volumes六、扩展:往这套里加什么
| 需求 | 加什么 |
|---|---|
| 自己的博客 | Typecho 容器(Typecho 搭建) |
| 数据库 | MySQL/PostgreSQL 容器(SQLite 与 MySQL 怎么选先想清楚) |
| 游戏服 | 用容器跑也行(Docker 部署游戏服务器),但注意性能和存档位置 |
| 密码管理 | Vaultwarden(Bitwarden 自建) |
| RSS 阅读 | FreshRSS |
加服务前先查内存:docker stats 看当前占用,新服务的 mem_limit 预留好。2G 机器加三个服务就是上限,别贪多。
七、常见疑问
Q:游戏服放容器里好还是 systemd 好?
更新频繁、要交互配置的游戏服建议 systemd(直接、好调试);追求环境隔离和多服管理可以容器化。两种都可以,见Docker 部署游戏服务器。
Q:compose 文件和 systemd 服务冲突吗?
不冲突。常见组合:游戏服用 systemd(吃内存大户),工具服务用 compose(小服务集群),一台机器两种管理方式各管各的。
Q:Watchtower 更新失败怎么办?
看 docker compose logs watchtower。常见原因是镜像拉取失败(网络)或端口冲突,回滚到上个版本:docker compose down && docker compose up -d(用旧本地镜像)。
结语
Docker 一键部署的精髓是「目录即服务」:一个 compose 文件 + 一个数据目录,定义了你机器上的全部工具服务。换机器、重装系统、迁移机房,都是「拷目录 + up -d」的十分钟操作。对同时跑着游戏服的机器,这套组合用 500M 内存换来网盘、监控、笔记三个常用服务——性价比极高。
容器化深入:Docker 数据卷与网络详解、Dockerfile 编写与镜像优化、Docker 常见故障排查。
财富云计算 专注 NAT 型云服务器,无独立公网 IP、价格比独立 IP 机型省一半以上,游戏服 + 工具服务同机共存的资源规划与端口方案见一台服务器多功能规划。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复
[...]db-data:换服务器 = 拷 compose 文件 + 数据卷,docker compose up -d,十分钟搬家完成。没有"我这环境怎么配的来着"的噩梦。Docker 系列教程站内很全:Docker 安装与基础命令、Compose 编排实战、一键部署常用服务、数据卷与网络详解。Docker 的安全功课:别拉来路不明的镜像、定期更新基础镜像、容器别用 root 跑、挂载 socket 要小心[...]
2026-10-18 回复