# dget **Repository Path**: johnroot/dget ## Basic Information - **Project Name**: dget - **Description**: docker镜像下载到本地 - **Primary Language**: Go - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-22 - **Last Updated**: 2025-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dget - Docker镜像下载工具 一个用于直接从Docker Hub或其他容器镜像仓库下载镜像包的命令行工具,支持离线安装场景。 ## 功能特性 - ✅ 支持多架构镜像下载(amd64, arm64, arm, 386等) - ✅ 支持自定义镜像仓库(Docker Hub、私有仓库等) - ✅ 支持HTTP代理设置 - ✅ 支持用户认证(用户名/密码) - ✅ 支持镜像标签列表查看 - ✅ 支持镜像信息查看 - ✅ 支持进度显示和断点续传 - ✅ 生成Docker可导入的tar.gz格式文件 - ✅ 跨平台支持(Windows、Linux) ## 安装 ### 从源码构建 ```bash # 克隆项目 git clone cd dget # 安装依赖 go mod download # 构建所有平台版本(使用build.bat) build.bat ``` 构建完成后会在当前目录生成以下可执行文件: - `dget_Windows_x64.exe` - Windows 64位版本 - `dget_Windows_x86.exe` - Windows 32位版本 - `dget_Linux_x64` - Linux 64位版本 - `dget_Linux_x86` - Linux 32位版本 - `dget_Linux_arm64` - Linux ARM64版本 - `dget_Linux_arm` - Linux ARM版本 ### 直接下载二进制文件 从Release页面下载预编译的二进制文件。 ## 使用方法 ### 基本语法 ```bash dget [选项] 镜像名[:标签] [架构] ``` ### 常用选项 | 选项 | 缩写 | 说明 | |------|------|------| | `-d` | | 打印调试信息 | | `-pi` | | 只打印镜像信息,不下载 | | `-a` | | 指定架构(如:amd64, arm64) | | `-x` | | HTTP代理地址 | | `-u` | | 用户名 | | `-p` | | 密码 | | `-t` | | 获取tag列表 | | `-s` | | 并发下载数量(默认3) | | `-r` | | 指定镜像仓库(默认registry-1.docker.io) | ### 示例 #### 1. 下载最新版nginx镜像 ```bash dget nginx ``` #### 2. 下载指定版本的nginx镜像 ```bash dget nginx:1.25 ``` #### 3. 下载指定架构的镜像 ```bash dget -a arm64 nginx ``` #### 4. 查看镜像标签列表 ```bash dget -t nginx ``` #### 5. 查看镜像信息 ```bash dget -pi nginx ``` #### 6. 使用代理下载 ```bash dget -x http://proxy.example.com:8080 nginx ``` #### 7. 使用认证信息下载私有镜像 ```bash dget -u username -p password private-registry.example.com/myimage:latest ``` #### 8. 从自定义仓库下载 ```bash dget -r my-registry.example.com nginx:latest ``` #### 9. 使用HTTPS URL格式 ```bash dget https://registry.example.com/nginx:latest ``` ### 输出文件 下载完成后会生成格式为 `镜像名-标签-架构.tar.gz` 的文件,例如: - `nginx-latest-linux-amd64.tar.gz` - `myimage-v1.0-linux-arm64.tar.gz` ## 离线安装 下载的tar.gz文件可以直接用于Docker离线安装: ```bash docker load -i nginx-latest-linux-amd64.tar.gz ``` ## 项目结构 ``` dget/ ├── main.go # 主程序入口,参数解析和逻辑控制 ├── client.go # 镜像下载客户端实现 ├── go.mod # Go模块定义 ├── go.sum # 依赖校验 ├── build.bat # 跨平台构建脚本 ├── LICENSE # 许可证文件 └── README.md # 项目说明文档 ``` ## 依赖库 - `github.com/google/go-containerregistry` - 容器镜像操作库 - `github.com/sirupsen/logrus` - 日志库 ## 开发 ### 环境要求 - Go 1.25+ - Git ### 构建测试 ```bash # 测试构建 go build -o dget . # 运行测试 go test ./... ``` ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 贡献 欢迎提交Issue和Pull Request! ## 常见问题 ### Q: 下载失败,提示认证错误? A: 使用 `-u` 和 `-p` 参数提供正确的用户名和密码。 ### Q: 网络连接失败? A: 检查网络连接,或使用 `-x` 参数设置代理。 ### Q: 镜像不存在? A: 使用 `-t` 参数查看可用的标签列表。 ### Q: 架构不支持? A: 使用 `-a` 参数指定正确的架构,或不指定让程序自动选择。 ## 版本历史 - v1.0.0 - 初始版本,支持基本镜像下载功能 - 支持多架构、代理、认证等高级功能