Docker Controller Bot 是一款专为Telegram平台设计的Docker容器管理工具,它通过简单的聊天界面,让用户能够远程操控Docker容器。该工具支持多种操作,包括启动、停止、重启容器,查看实时日志,以及检查镜像更新等。只需预先配置Telegram Bot Token和管理员Chat ID,用户即可通过手机或电脑发送指令,例如使用 /start container_name 来启动指定容器,或通过 /logs container_name 快速查看容器日志输出。
项目源码地址:https://github.com/dgongut/docker-controller-bot
Docker Compose 配置示例:
services:
docker-controller-bot:
image: dgongut/docker-controller-bot:latest
container_name: docker-controller-bot
environment:
- TELEGRAM_TOKEN=your_bot_token
- TELEGRAM_ADMIN=your_chat_id
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./schedule:/app/schedule
restart: always
network_mode: host
功能详解
Docker Controller Bot 通过集成Telegram提供了丰富的容器管理功能,具体包括:
- 容器管理操作:支持通过指令如
/start、/stop、/restart、/pause、/unpause和/remove来分别实现容器的启动、停止、重启、暂停、恢复和删除。 - 状态监控功能:用户可以使用
/status查看所有容器的运行状态,通过/info获取容器的详细配置信息,以及使用/logs显示容器的实时日志内容。 - 更新管理机制:通过
/check_updates指令检查容器镜像的更新情况,结合DCB-Auto-Update标签可实现自动更新流程。在v2.5.0版本中,修复了/changetag命令,确保容器版本切换更加可靠。 - 批量操作支持:使用
/compose显示docker-compose相关标签,并通过/update_all实现多个容器的批量更新操作。 - 通知与调度系统:支持配置通知渠道(TELEGRAM_NOTIFICATION_CHANNEL),用于发送容器状态变更提醒。用户可通过
/schedule设置定时任务,例如定期执行更新检查(CHECK_UPDATE_EVERY_HOURS)。 - 多管理员与群组模式:允许设置多个管理员(通过TELEGRAM_ADMIN=12345,54321配置),并支持群组使用(TELEGRAM_GROUP),需将Bot设置为群组管理员以启用协作功能。
技术实现架构
Docker Controller Bot 采用轻量级技术栈,部署简单且资源消耗低:
- 后端开发语言:基于Python 3编写,依赖python-telegram-bot库处理Telegram API请求,使用docker库与Docker守护进程进行交互。配置信息通过.env文件管理,存储Bot Token和Chat ID等参数。
- 数据存储方式:无需额外数据库,数据通过Docker socket(/var/run/docker.sock)和本地文件系统(/app/schedule目录)进行管理。
- 用户界面设计:完全基于Telegram聊天界面,无需独立的Web用户界面,所有指令均通过Bot交互完成。
- 部署方案:提供Docker镜像(dgongut/docker-controller-bot:latest),镜像大小经过优化,v2.5.0版本约为80MB。
- 多语言支持:内置多语言功能,支持英语、西班牙语、德语、俄语等,通过locale目录下的语言文件(如locale/*.json)实现,可通过LANGUAGE环境变量(如LANGUAGE=ES)进行切换。
- 其他技术特性:利用GitHub Actions实现持续集成和部署流程,并支持ARM64架构,兼容多种硬件平台。
主要优势
1. Telegram平台集成
通过Telegram发送简单指令(例如 /start nginx),用户可以随时随地在手机或电脑上管理Docker容器,尤其适合移动场景下的快速操作。
2. 轻量高效与广泛兼容
Docker镜像体积小巧,仅约80MB,基于Python脚本运行效率高,兼容Arm架构设备,包括树莓派和低配置虚拟私有服务器。
3. 多用户与群组协作
v2.5.0版本增强了对多管理员和群组模式的支持,便于团队协作管理容器,提升操作灵活性。
4. 自动化更新机制
通过DCB-Auto-Update标签和 /check_updates 指令,实现容器镜像的自动检查与更新。DCB-Ignore-Check-Updates标签可用于跳过特定容器的更新流程。
5. 多语言与实时通知
支持多种语言界面(如en.json、es.json等),并结合通知渠道发送状态更新,显著改善用户体验和可访问性。
应用场景
1. 家庭实验室与NAS用户
Docker Controller Bot 的低资源占用和简单部署特性,使其非常适合家庭实验室环境。许多自托管爱好者称赞其为“手机管理Docker的神器”,并可与其他工具如Traefik集成,实现安全的远程访问。
2. 系统运维管理
系统管理员可通过 /logs 和 /status 指令快速诊断容器问题,利用 /schedule 功能设置定期维护任务,例如自动清理无用容器。
3. 小型团队协作
多管理员支持和群组模式使得团队能够高效协作,通知渠道确保所有成员及时了解容器状态变化,适合开发或运维小组使用。