# Docker容器管理

此目录包含微信机器人Docker容器管理相关的代码：

## 文件说明

- `client.go`: Docker客户端初始化和管理
- `container.go`: 容器基本操作（创建、启动、停止、删除等）
- `robot.go`: 微信机器人容器专用操作（如获取登录二维码、检查微信登录状态等）
- `monitor.go`: 容器状态监控，定期检查并更新机器人状态

## 主要功能

1. **容器生命周期管理**
   - 创建微信机器人容器
   - 启动、停止和删除容器
   - 获取容器状态和日志

2. **微信机器人操作**
   - 获取登录二维码
   - 微信登录状态监控
   - 获取联系人列表和群成员
   - 获取聊天记录
   - 微信登出

3. **状态监控**
   - 定期检查微信机器人容器状态
   - 自动更新数据库中的状态信息

## 使用方法

初始化Docker客户端：

```go
import (
    "context"
    "github.com/Lxh/wechat-demo/internal/config"
    "github.com/Lxh/wechat-demo/internal/docker"
)

func main() {
    cfg, _ := config.Load()
    err := docker.InitClient(&cfg.Docker)
    if err != nil {
        panic(err)
    }
    
    // 创建微信机器人容器
    ctx := context.Background()
    containerID, err := docker.CreateRobotContainer(ctx, &cfg.Docker, "robot1")
    if err != nil {
        panic(err)
    }
    
    // 获取容器状态
    status, errMsg, err := docker.GetWechatBotStatus(ctx, containerID)
    // ...
}
```

启动容器监控：

```go
import (
    "context"
    "time"
    "github.com/Lxh/wechat-demo/internal/model"
    "github.com/Lxh/wechat-demo/internal/docker"
)

func main() {
    db := model.GetDB()
    
    // 创建监控器，每分钟检查一次
    monitor := docker.NewContainerMonitor(db, time.Minute)
    
    // 启动监控
    monitor.Start(context.Background())
    
    // 添加容器到监控列表
    monitor.AddRobot("container-id")
    
    // 停止监控
    // monitor.Stop()
}
```
