# 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() } ```