随着越来越多服务可以通过 Docker 部署,很多个人服务器都会运行多个项目,例如博客、密码管理器、数据库等。
如果一开始没有规划好服务器结构,后期往往会出现:
- 项目目录混乱
- 数据难以备份
- 迁移服务器困难
- 运维成本越来越高
本文整理了一套 个人服务器 Docker 运维方案,适用于长期稳定运行。
一、服务器目录规划
Linux 系统推荐遵循 Filesystem Hierarchy Standard。
其中:
- /opt 用于存放第三方软件
- 非系统程序建议统一放在 /opt
因此推荐目录结构:
/opt
└── docker
├── nginx
├── wordpress
├── bitwarden
├── mysql
└── redis
说明:
| 目录 | 用途 |
| /opt/docker | 所有 Docker 项目 |
| nginx | 反向代理 |
| wordpress | 博客系统 |
| bitwarden | 密码管理 |
| mysql | 数据库 |
| redis | 缓存服务 |
这样规划的优点:
- 结构清晰
- 运维简单
- 迁移服务器方便
二、Docker 项目标准结构
每个 Docker 项目建议统一结构:
project-name
├── docker-compose.yml
├── data
├── config
└── logs
例如 WordPress:
/opt/docker/wordpress
├── docker-compose.yml
├── data
├── db
└── logs
说明:
| 目录 | 用途 |
| docker-compose.yml | 容器启动配置 |
| data | 程序数据 |
| config | 配置文件 |
| logs | 日志 |
三、推荐部署的基础服务
一台个人服务器通常包含以下服务:
1 Nginx 反向代理
推荐使用 Nginx 统一反向代理。
目录结构:
/opt/docker/nginx
├── docker-compose.yml
├── conf
│ ├── blog.conf
│ ├── panel.conf
│ └── vault.conf
├── html
└── logs
用于反代:
- 博客
- 面板
- API 服务
2 WordPress 博客
博客系统推荐使用 WordPress。
优点:
- 插件丰富
- 主题丰富
- SEO 友好
- 社区活跃
目录:
/opt/docker/wordpress
3 Bitwarden 密码管理
密码管理推荐自建 Bitwarden。
优点:
- 开源
- 支持浏览器插件
- 支持手机 App
- 支持自托管
目录:
/opt/docker/bitwarden
四、Docker 常用运维命令
查看容器:
docker ps
查看日志:
docker logs 容器名
进入容器:
docker exec -it 容器名 bash
重启容器:
docker restart 容器名
停止项目:
docker compose down
启动项目:
docker compose up -d
五、服务器迁移方法
如果需要更换服务器,只需要迁移 /opt/docker 目录。
1 停止容器
docker compose down
2 打包数据
tar -czvf docker-backup.tar.gz /opt/docker
3 传输到新服务器
scp docker-backup.tar.gz root@新服务器:/opt
4 解压
tar -xzvf docker-backup.tar.gz
5 启动服务
cd /opt/docker
docker compose up -d
完成迁移。
六、Docker 数据备份
建议每天备份服务器数据。
备份命令:
tar -czvf /backup/docker-$(date +%F).tar.gz /opt/docker
定时任务:
crontab -e
加入:
0 3 * * * tar -czvf /backup/docker-$(date +\%F).tar.gz /opt/docker
每天凌晨 3 点自动备份。
七、服务器安全建议
- 使用 SSH Key 登录
- 禁止 root 远程登录
- 开启防火墙
- 定期更新系统
- 定期备份数据
八、推荐服务器运维习惯
1️⃣ 所有项目统一 /opt/docker
2️⃣ 每个项目独立目录
3️⃣ 使用 docker-compose 管理
4️⃣ 所有数据必须挂载
5️⃣ 定期备份服务器
九、总结
通过合理规划服务器结构,可以获得以下优势:
- 清晰的项目结构
- 简单的服务器迁移
- 方便的数据备份
- 更专业的运维管理
这套结构非常适合:
- 个人博客服务器
- 自建云服务
- 开发测试服务器
长期使用也不会混乱。
如果需要进一步提升运维效率,可以继续优化:
- 自动备份脚本
- 自动 SSL 证书
- 统一反向代理
- Docker 一键部署脚本
这样就能打造一套稳定的个人服务器环境。
发表回复