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仓库密码),工具支持使用环境变量来管理这些信息:
使用环境变量存储密码
-
通用环境变量:设置
DOCKER_PASSWORD环境变量export DOCKER_PASSWORD="your_password"
-
用户特定环境变量:如果有多个用户,可以设置用户特定的环境变量
# 假设用户名为 username export DOCKER_PASSWORD_USERNAME="your_password"
-
持久化环境变量:将环境变量添加到
~/.bashrc或~/.profile文件中echo 'export DOCKER_PASSWORD="your_password"' >> ~/.bashrc source ~/.bashrc
定时任务管理
工具提供了强大的定时任务管理功能,支持多种执行频率和灵活的配置选项。
支持的定时任务类型
-
每天执行
- 在指定时间执行任务
- 格式:
HH:MM
-
每周执行
- 在指定的星期几和时间执行
- 支持选择具体星期几
- 格式:
星期几 HH:MM
-
每月执行
- 在每月指定日期和时间执行
- 支持选择1-31号
- 格式:
日期 HH:MM
-
每小时执行
- 在每小时的指定分钟执行
- 格式:
分钟数(0-59)
任务类型
支持以下类型的定时任务:
-
备份任务:定期将容器保存为镜像
- 可选择是否在备份前清理容器
- 可选择是否自动推送备份镜像
- 支持自定义备份镜像名称和标签
-
清理任务:定期清理容器内的缓存文件
- 可自定义清理路径
- 支持多路径配置
- 支持排除特定路径
调度器管理
-
状态监控
- 实时查看调度器运行状态
- 查看任务执行历史
- 监控任务执行时间
-
日志管理
- 分任务类型记录日志
- 支持日志轮转
- 支持实时日志查看
-
错误处理
- 自动记录任务执行错误
- 失败重试机制
- 异常通知
工作流最佳实践
-
项目初始化
- 使用
dm init创建项目结构 - 配置适合您项目的Dockerfile和docker-compose.yml
- 使用
-
环境配置
- 使用
dm config设置项目参数 - 配置资源限制和环境变量
- 使用
-
开发周期
- 使用
dm build构建开发环境 - 使用
dm up启动容器 - 开发和测试
- 使用
dm save保存重要状态
- 使用
-
生产部署
- 使用
dm build -p构建并推送生产镜像 - 配置自动备份
dm schedule backup - 设置资源清理
dm schedule cleanup
- 使用
-
资源管理
- 定期使用
dm status监控资源使用 - 使用
dm cleanup清理不需要的镜像 - 使用
dm logs排查问题
- 定期使用
常见问题
-
命令不生效
- 确保在正确的项目目录下
- 检查配置文件是否正确
- 使用
dm status查看当前状态
-
配置问题
- 使用
dm config交互式配置 - 检查配置文件格式
- 使用环境变量覆盖敏感配置
- 使用
-
镜像构建失败
- 检查Dockerfile语法
- 确保基础镜像可用
- 查看构建日志
dm logs
-
定时任务不执行
- 检查cron表达式格式
- 确保系统时间正确
- 查看任务列表
dm schedule list
-
推送镜像失败
- 使用
dm config配置正确的仓库信息(URL、用户名、密码) - 确保已登录到镜像仓库:
dm push -u 用户名 -p 密码 - 检查是否有推送权限
- 对于私有仓库,确保仓库已创建
- 使用
必需文件检查
工具会在初始化项目时检查以下必需文件:
- Dockerfile:用于构建镜像
- docker-compose.yml:用于管理容器
如果这些文件不存在,工具会提供以下选项:
- 创建这些文件后再初始化
- 使用
--force参数强制初始化
许可证
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf5761d0be6b6b291647befbd54749c06d0d749de0a2c12c3847dff9d5aa078d
|
|
| MD5 |
649e02f44e384e9384faea9f02ea10bf
|
|
| BLAKE2b-256 |
b6c5e0224592483bbba16324c06ff9b7eb5950eac1d74e921d8c3860ba9a8b51
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdfe0ac57725c27793e6965274cb3b0092191e6669a95039fe4c2779955ddd7
|
|
| MD5 |
94e4b6f78c0f8925786b97b5e0d5e3ff
|
|
| BLAKE2b-256 |
3c25fadeb0f4f31c049513eafcba2524eaa2870952689ad5a294a9f392673aa5
|