Skip to main content

Docker项目和容器管理工具

Project description

Docker项目和容器管理工具

一个通用的Docker环境管理工具,提供完整的项目、镜像和容器生命周期管理,简化Docker环境的配置、使用和维护。

核心功能

  • 项目管理:创建、配置和管理Docker项目
  • 镜像管理:构建、标记、推送和清理Docker镜像
  • 容器管理:启动、停止、保存和监控容器
  • 定时任务:自动备份和清理,支持多种定时方案
  • 状态监控:实时查看项目、镜像和容器状态
  • 资源优化:智能清理和资源回收

安装

# 从源码安装
git clone https://github.com/queekye/dockmaster.git
cd dockmaster
pip install -e .
pip install dockmaster

快速开始

# 在当前目录创建项目(目录名作为项目名)
dm init

# 或指定项目目录和名称
dm init /path/to/project -n my_project

# 强制初始化(即使缺少必需文件)
dm init -f

命令参考

基础命令

# 创建项目(默认使用当前目录)
dm init [目录] [-n 名称] [-f 强制]

# 构建镜像(默认使用当前目录的Dockerfile)
dm build [-f Dockerfile文件] [-p 推送] [--build-arg KEY=VALUE]

# 启动容器(默认使用docker-compose.yml)
dm up [-f compose文件]

# 停止容器
dm down

# 保存容器状态
dm save [-t 标签] [-c 清理]

# 推送镜像到远程仓库
dm push [-r 仓库地址] [-u 用户名] [-p 密码] [-t 标签]

配置命令

# 交互式配置(支持tab补全)
dm config

# 快速设置常用配置
dm config registry docker.io
dm config username myname

定时任务管理

# 交互式配置定时任务(支持多种执行频率)
dm schedule

# 快速设置备份任务(每天指定时间)
dm schedule backup "00:00"

# 快速设置清理任务(每天指定时间)
dm schedule cleanup "00:00"

# 列出所有定时任务
dm schedule list

# 删除定时任务(交互式选择)
dm schedule remove

# 删除指定类型的定时任务
dm schedule remove backup

# 管理调度器
dm schedule start   # 启动调度器
dm schedule stop    # 停止调度器
dm schedule restart # 重启调度器

# 查看调度器日志
dm schedule logs [-n 行数] [-f 持续显示]
dm schedule logs backup  # 查看备份任务日志
dm schedule logs cleanup # 查看清理任务日志

高级命令

# 构建并推送镜像(支持镜像前缀)
dm build -p --prefix organization-name

# 清理并保存容器
dm save -c

# 推送镜像到指定仓库(支持镜像前缀)
dm push -r registry.example.com -u username -p password --prefix organization-name

# 推送镜像并使用配置文件中的认证信息
dm push

# 查看状态
dm status

# 查看日志
dm logs [-f 持续显示]

# 清理旧镜像
dm cleanup [-d 天数] [-n 保留数量] [--dry-run]

环境配置示例

# docker-compose.yml 示例
version: '3'
services:
  webapp:
    image: ${IMAGE_NAME:-my-webapp-image}:${TAG:-latest}
    container_name: ${CONTAINER_NAME:-my-webapp-container}
    environment:
      - NODE_ENV=production
    volumes:
      - ./data:/data
      - ./logs:/logs
    ports:
      - "8080:8080"
    restart: unless-stopped

配置文件

配置文件位于项目目录下的 config.json,可以通过 dm config 交互式配置:

{
  "project": {
    "name": "my_project",
    "directory": "/path/to/project"
  },
  "image": {
    "name": "my-project-image",
    "dockerfile": "Dockerfile",
    "registry": {
      "url": "docker.io",
      "username": "username",
      "password": "",
      "prefix": "organization-name"
    }
  },
  "container": {
    "name": "my-project-container",
    "compose_file": "docker-compose.yml",
    "cleanup": {
      "paths": ["/tmp/*", "/var/cache/*"]
    }
  },
  "schedule": {
    "backup": {
      "type": "daily",
      "time": "00:00",
      "cleanup": false,
      "auto_push": false
    },
    "cleanup": {
      "type": "weekly",
      "weekday": "monday",
      "time": "00:00",
      "paths": ["/tmp/*", "/var/cache/*"]
    }
  }
}

敏感信息管理

为了避免在配置文件中明文存储敏感信息(如Docker仓库密码),工具支持使用环境变量来管理这些信息:

使用环境变量存储密码

  1. 通用环境变量:设置 DOCKER_PASSWORD 环境变量

    export DOCKER_PASSWORD="your_password"
    
  2. 用户特定环境变量:如果有多个用户,可以设置用户特定的环境变量

    # 假设用户名为 username
    export DOCKER_PASSWORD_USERNAME="your_password"
    
  3. 持久化环境变量:将环境变量添加到 ~/.bashrc~/.profile 文件中

    echo 'export DOCKER_PASSWORD="your_password"' >> ~/.bashrc
    source ~/.bashrc
    

定时任务管理

工具提供了强大的定时任务管理功能,支持多种执行频率和灵活的配置选项。

支持的定时任务类型

  1. 每天执行

    • 在指定时间执行任务
    • 格式:HH:MM
  2. 每周执行

    • 在指定的星期几和时间执行
    • 支持选择具体星期几
    • 格式:星期几 HH:MM
  3. 每月执行

    • 在每月指定日期和时间执行
    • 支持选择1-31号
    • 格式:日期 HH:MM
  4. 每小时执行

    • 在每小时的指定分钟执行
    • 格式:分钟数(0-59)

任务类型

支持以下类型的定时任务:

  • 备份任务:定期将容器保存为镜像

    • 可选择是否在备份前清理容器
    • 可选择是否自动推送备份镜像
    • 支持自定义备份镜像名称和标签
  • 清理任务:定期清理容器内的缓存文件

    • 可自定义清理路径
    • 支持多路径配置
    • 支持排除特定路径

调度器管理

  • 状态监控

    • 实时查看调度器运行状态
    • 查看任务执行历史
    • 监控任务执行时间
  • 日志管理

    • 分任务类型记录日志
    • 支持日志轮转
    • 支持实时日志查看
  • 错误处理

    • 自动记录任务执行错误
    • 失败重试机制
    • 异常通知

工作流最佳实践

  1. 项目初始化

    • 使用 dm init 创建项目结构
    • 配置适合您项目的Dockerfile和docker-compose.yml
  2. 环境配置

    • 使用 dm config 设置项目参数
    • 配置资源限制和环境变量
  3. 开发周期

    • 使用 dm build 构建开发环境
    • 使用 dm up 启动容器
    • 开发和测试
    • 使用 dm save 保存重要状态
  4. 生产部署

    • 使用 dm build -p 构建并推送生产镜像
    • 配置自动备份 dm schedule backup
    • 设置资源清理 dm schedule cleanup
  5. 资源管理

    • 定期使用 dm status 监控资源使用
    • 使用 dm cleanup 清理不需要的镜像
    • 使用 dm logs 排查问题

常见问题

  1. 命令不生效

    • 确保在正确的项目目录下
    • 检查配置文件是否正确
    • 使用 dm status 查看当前状态
  2. 配置问题

    • 使用 dm config 交互式配置
    • 检查配置文件格式
    • 使用环境变量覆盖敏感配置
  3. 镜像构建失败

    • 检查Dockerfile语法
    • 确保基础镜像可用
    • 查看构建日志 dm logs
  4. 定时任务不执行

    • 检查cron表达式格式
    • 确保系统时间正确
    • 查看任务列表 dm schedule list
  5. 推送镜像失败

    • 使用 dm config 配置正确的仓库信息(URL、用户名、密码)
    • 确保已登录到镜像仓库:dm push -u 用户名 -p 密码
    • 检查是否有推送权限
    • 对于私有仓库,确保仓库已创建

必需文件检查

工具会在初始化项目时检查以下必需文件:

  • Dockerfile:用于构建镜像
  • docker-compose.yml:用于管理容器

如果这些文件不存在,工具会提供以下选项:

  1. 创建这些文件后再初始化
  2. 使用 --force 参数强制初始化

许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dockmaster-0.1.6.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dockmaster-0.1.6-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

Details for the file dockmaster-0.1.6.tar.gz.

File metadata

  • Download URL: dockmaster-0.1.6.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dockmaster-0.1.6.tar.gz
Algorithm Hash digest
SHA256 cf5761d0be6b6b291647befbd54749c06d0d749de0a2c12c3847dff9d5aa078d
MD5 649e02f44e384e9384faea9f02ea10bf
BLAKE2b-256 b6c5e0224592483bbba16324c06ff9b7eb5950eac1d74e921d8c3860ba9a8b51

See more details on using hashes here.

File details

Details for the file dockmaster-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: dockmaster-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dockmaster-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2bdfe0ac57725c27793e6965274cb3b0092191e6669a95039fe4c2779955ddd7
MD5 94e4b6f78c0f8925786b97b5e0d5e3ff
BLAKE2b-256 3c25fadeb0f4f31c049513eafcba2524eaa2870952689ad5a294a9f392673aa5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page