docs: 拆分 README.md 为多个子文档,README 简化为架构引导大纲
This commit is contained in:
144
codes/agent/game-docker/docs/07-uninstall.md
Normal file
144
codes/agent/game-docker/docs/07-uninstall.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 卸载和清理
|
||||
|
||||
根据需求选择卸载范围。以下操作不可逆,请提前备份重要数据。
|
||||
|
||||
---
|
||||
|
||||
## 卸载前:备份关键数据
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
|
||||
# 1. 备份 .env(包含所有密钥,不在版本库中)
|
||||
cp .env ~/youle-env-backup.env
|
||||
|
||||
# 2. 备份 Redis 数据(如有业务数据存储在 Redis 中)
|
||||
docker exec youle-redis redis-cli -a "${REDIS_PASSWORD}" BGSAVE
|
||||
# 或直接备份 volume
|
||||
docker run --rm -v game-docker_redis-data:/data -v ~/:/backup alpine \
|
||||
tar czf /backup/redis-data-backup.tar.gz /data
|
||||
|
||||
# 3. 备份日志(按需)
|
||||
docker cp youle-api:/var/www/html/logs ~/api-logs-backup
|
||||
docker cp youle-dlweb:/var/www/html/api/logs ~/dlweb-logs-backup
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 仅停止所有容器(保留镜像和数据,可随时恢复)
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
docker compose stop
|
||||
|
||||
# 验证
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
恢复运行:
|
||||
|
||||
```bash
|
||||
docker compose start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 停止并删除容器(保留镜像、volumes 和项目文件)
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
docker compose down
|
||||
|
||||
# 验证容器已删除
|
||||
docker ps -a | grep youle
|
||||
```
|
||||
|
||||
> 此操作不会删除数据 volume 和已构建的镜像,再次 `docker compose up -d` 可快速恢复,无需重新构建。
|
||||
|
||||
---
|
||||
|
||||
## 完全卸载(删除容器 + volumes + 镜像)
|
||||
|
||||
> **警告:** 以下操作将删除 Redis 缓存和所有日志数据,不可恢复。
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
|
||||
# 停止并删除容器 + 所有相关 volumes
|
||||
docker compose down -v
|
||||
|
||||
# 删除本项目构建的镜像
|
||||
docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true
|
||||
|
||||
# 验证
|
||||
docker volume ls | grep game-docker
|
||||
docker images | grep game-docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 彻底清理(删除容器 + volumes + 镜像 + 项目目录 + SSL 证书)
|
||||
|
||||
> **警告:** SSL 证书删除后需重新申请(Let's Encrypt 有频率限制,每 7 天最多 5 次)。
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
|
||||
# 1. 停止并删除容器 + volumes
|
||||
docker compose down -v
|
||||
|
||||
# 2. 删除构建镜像
|
||||
docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true
|
||||
|
||||
# 3. 清理 Docker 悬空资源(可选)
|
||||
docker system prune -f
|
||||
|
||||
# 4. 删除 SSL 证书
|
||||
docker volume rm game-docker_certbot-certs game-docker_certbot-webroot 2>/dev/null || true
|
||||
|
||||
# 5. 删除项目目录
|
||||
rm -rf /opt/youle/game-docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 删除单个服务的容器和镜像
|
||||
|
||||
```bash
|
||||
cd /opt/youle/game-docker
|
||||
|
||||
# 以 dlweb 为例
|
||||
docker compose stop dlweb
|
||||
docker compose rm -sf dlweb
|
||||
docker rmi game-docker-dlweb
|
||||
|
||||
# 下次启动时会重新构建
|
||||
docker compose up -d --build dlweb
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 清理定时任务残留
|
||||
|
||||
```bash
|
||||
docker compose stop syncjob cronjob
|
||||
docker compose rm -sf syncjob cronjob
|
||||
|
||||
# 清理共享信号 volume(如有残留暂停文件)
|
||||
docker run --rm -v game-docker_shared-signal:/shared alpine rm -f /shared/syncjob.pause
|
||||
|
||||
# 如需完全删除共享 volume
|
||||
docker volume rm game-docker_shared-signal
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 卸载操作速查
|
||||
|
||||
| 目标 | 命令 | 保留内容 |
|
||||
|------|------|----------|
|
||||
| 临时停止(可恢复) | `docker compose stop` | 容器 / 镜像 / volumes / 文件 |
|
||||
| 删除容器 | `docker compose down` | 镜像 / volumes / 文件 |
|
||||
| 删除容器 + volumes | `docker compose down -v` | 镜像 / 文件 |
|
||||
| 删除容器 + volumes + 镜像 | `docker compose down -v` + `docker rmi ...` | 文件 |
|
||||
| 完全清理 | 上述全部 + `rm -rf /opt/youle/game-docker` | 无 |
|
||||
Reference in New Issue
Block a user