Sign inSign up

liuloktar/dockercopilot

By liuloktar

•Updated about 20 hours ago

Docker 容器管理工具:容器/镜像管理、日志、备份、Compose 编排

Image
0

1.7K

liuloktar/dockercopilot repository overview

⁠Docker Copilot

一个主打便捷的 Docker 容器管理工具,提供服务端 API、Web 管理界面和移动端客户端。

⁠功能

容器

  • 一键更新容器,支持指定镜像与 tag
  • 启动、停止、重启、重命名容器
  • 查看容器日志,支持 tail、时间戳、结构化日志解析
  • 更新进度实时查看

镜像

  • 删除无 TAG 镜像
  • 删除未使用镜像

备份

  • 备份容器配置
  • 恢复容器配置
  • 导出为 compose YAML

Compose 文件管理

  • 在线编辑 compose 文件,保存前做结构校验
  • 保存前自动备份,支持版本历史与一键回滚
  • 删除走回收站,可恢复
  • 投递 up / down / restart / pull 执行请求

关注仓库发布监控

  • 关注 GitHub 仓库,定时检查最新 Release
  • 记录每个仓库的最近版本与检查状态

⁠快速开始

services:
  dockercopilot:
    container_name: dockercopilot
    restart: always
    network_mode: bridge
    ports:
      - 12712:12712
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # 数据目录:compose 文件、备份、历史都保存在这里
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DOCKER_HOST=unix:///var/run/docker.sock
      - secretKey=密码,不少于八位且非纯数字
      # 可选:关注仓库监控
      - RELEASE_WATCH_INTERVAL_MINUTES=60
      - GITHUB_TOKEN=
    image: liuloktar/dockercopilot:latest

启动后访问 http://<host>:12712/manager 打开管理界面。

⁠配置项

环境变量默认值说明
secretKey必填登录密码,不少于 8 位且非纯数字
DOCKER_HOSTunix:///var/run/docker.sockDocker daemon 地址
BACKUP_DIR/data/backups容器备份目录
COMPOSE_DIR/data/stackscompose 文件目录
RELEASE_WATCH_INTERVAL_MINUTES60发布检查间隔,最小 5 分钟
GITHUB_TOKEN空提高 GitHub API 频率上限
DelOldContainertrue更新容器后是否删除旧容器

⁠Compose 文件存储

compose 文件存放在 /data/stacks:

/data/stacks/
├── app.yaml                 # compose 文件
├── .backups/                # 保存前自动备份,每文件最多保留 20 份
├── .trash/                  # 软删除的文件,可恢复
├── .history.jsonl           # 版本历史,最多 200 条
├── .queue/                  # 待执行请求(服务端写入)
└── .results/                # 执行结果(watcher 写入)
  • 覆盖保存前会先备份旧内容,备份失败则取消保存
  • 删除是软删除,可恢复
  • 回滚前会把当前内容再备份一次

⁠Compose 执行

服务端容器只挂载 docker.sock,不直接执行 compose 命令。执行拆成两段:

客户端 → 服务端(写 .queue/{jobId}.json)
                  ↓
         宿主机 watcher 轮询
                  ↓
         docker compose -f ... up -d
                  ↓
         写 .results/{jobId}.json
                  ↓
客户端 ← GET /api/compose/job?jobId=

在宿主机上启动 watcher:

COMPOSE_WATCH_DIR=/path/to/data/stacks ./compose-watcher.sh

⁠架构

  • 后端:Go + go-zero
  • 前端:React + Vite
  • 编排:Docker Compose
  • 多架构镜像:linux/amd64、linux/arm64

⁠安全说明

  • 挂载 docker.sock 等价于宿主机 root 权限,不要暴露到公网
  • compose 文件与执行请求都做文件名、动作白名单校验
  • 关注仓库的请求地址固定为 https://api.github.com
  • 建议通过反向代理加一层 HTTPS 和访问控制

⁠项目地址

https://github.com/singleton-altman/dockerCopilot⁠

⁠许可证

AGPL-3.0

Tag summary

Content type

Image

Digest

sha256:bd6bb70ef…

Size

43.8 MB

Last updated

about 20 hours ago

docker pull liuloktar/dockercopilot