七千二百袋水泥
七千二百袋水泥
Published on 2025-10-25 / 4 Visits

Docker Controller Bot 完整指南:在NAS上搭建Telegram Docker管理机器人,实现远程容器控制、状态监控、自动更新和多语言支持

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. 小型团队协作

多管理员支持和群组模式使得团队能够高效协作,通知渠道确保所有成员及时了解容器状态变化,适合开发或运维小组使用。