随着越来越多服务可以通过 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 一键部署脚本

这样就能打造一套稳定的个人服务器环境。