Skip to content

Commit 28c984c

Browse files
committed
优化代码结构
1 parent 5de7b1f commit 28c984c

File tree

6 files changed

+339
-391
lines changed

6 files changed

+339
-391
lines changed

README.md

Lines changed: 65 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,88 @@
1-
# Docker Pull Tool
1+
# Docker Image Puller
22

3-
这是一个基于 `docker-drag` 实现的 Python 工具,用于从 Docker Hub 或其他镜像源下载 Docker 镜像并保存为 `.tar` 文件。支持以下功能:
3+
## 项目简介
44

5-
- **新版 Docker Hub API 支持**:兼容 Docker Hub 的最新 API。
6-
- **多架构支持**:可以指定下载的镜像架构(如 `amd64``arm64` 等)。
7-
- **镜像源加速**:支持指定镜像源以加速下载。
8-
- **简单易用**:通过命令行参数快速下载镜像。
5+
Docker Image Puller 是一个强大的工具,用于从 Docker 仓库拉取镜像,支持国内镜像源加速和多架构支持。该工具采用 MIT 许可证,开放源代码,方便用户根据需要进行定制和扩展。
96

7+
## 特点
108

11-
---
9+
- **国内镜像源加速**: 通过配置国内镜像源,大幅提高镜像下载速度。
10+
- **多架构支持**: 支持多种架构(如 amd64, arm64),满足不同环境需求。
11+
- **兼容最新 Docker Hub API**: 确保与 Docker Hub 的最新接口兼容,获取最新的镜像信息。
12+
- **单文件 Python 脚本**: 便于携带和使用,无需复杂安装。
13+
- **无依赖 EXE 执行**: 编译为独立 EXE 文件,无需安装 Python 环境,在 Releases 下载。
14+
- **用户友好**: 提供交互式输入,简化操作流程。
15+
- **优化性能**: 提高下载速度和可靠性。
1216

13-
## 使用方法
17+
## 安装
18+
19+
### 通过 Git 克隆
1420

15-
### 基本命令
1621
```bash
17-
python docker_pull.py <image_name> [options]
22+
git clone https://github.com/topcss/docker-pull-tar.git
1823
```
1924

20-
### 示例
21-
下载 `alpine` 镜像的 `arm64` 架构版本,使用自定义镜像源加速下载:
22-
```bash
23-
python docker_pull.py alpine arm64 docker.xuanyuan.me
24-
```
25-
---
2625

27-
## 示例输出
26+
### 依赖安装
27+
28+
确保已安装 Python 3.x 版本。如果需要将脚本编译为 EXE,可以使用 PyInstaller:
2829

2930
```bash
30-
$ python docker_pull.py alpine --arch arm64 --registry docker.xuanyuan.me
31-
[INFO] 开始下载镜像: alpine:latest (arm64)
32-
[INFO] 使用镜像源: docker.xuanyuan.me
33-
[INFO] 下载 manifest 文件...
34-
[INFO] 下载 config 文件...
35-
[INFO] 下载 layer 1/3: sha256:123456...
36-
[INFO] 下载 layer 2/3: sha256:abcdef...
37-
[INFO] 下载 layer 3/3: sha256:987654...
38-
[INFO] 打包镜像为 alpine_latest_arm64.tar...
39-
[INFO] 镜像下载完成: alpine_latest_arm64.tar
31+
pip install pyinstaller
32+
pyinstaller --onefile docker_image_puller.py
4033
```
4134

42-
---
35+
## 使用
36+
37+
### 基本用法
38+
39+
```bash
40+
python docker_image_puller.py [镜像名称] [架构] [仓库地址]
41+
```
42+
43+
### 示例
4344

44-
## 注意事项
45+
```bash
46+
D:\> DockerPull.exe
47+
48+
欢迎使用 Docker 镜像拉取工具!
49+
请输入以下信息:
50+
请输入 Docker 镜像名称(例如:library/ubuntu:latest):alpine
51+
请输入架构(默认:amd64):
52+
请输入 Docker 仓库地址(默认:docker.xuanyuan.me):
53+
仓库地址:docker.xuanyuan.me
54+
仓库名:library/alpine
55+
标签:latest
56+
架构:amd64
57+
Docker 镜像已拉取:library_alpine.tar
58+
```
4559

46-
1. 确保网络连接正常,尤其是访问 Docker Hub 或自定义镜像源时。
47-
2. 如果下载速度较慢,建议使用国内镜像源(如 `docker.xuanyuan.me`)。
48-
3. 下载的 `.tar` 文件可以通过 `docker load -i <file>.tar` 命令加载到本地 Docker 环境。
60+
```bash
61+
python docker_image_puller.py library/ubuntu:latest amd64 docker.xuanyuan.me
62+
```
4963

50-
---
5164

5265
## 许可证
5366

54-
本项目基于 MIT 许可证开源。详情请参阅 [LICENSE](LICENSE) 文件。
67+
本项目采用 MIT 许可证,详情见 [LICENSE](LICENSE) 文件。
68+
69+
## 联系方式
70+
71+
如有任何问题或建议,请通过 [GitHub Issues](https://github.com/topcss/docker-pull-tar/issues) 提出。
72+
73+
## 为什么选择这个工具?
74+
75+
- **速度快**: 国内镜像源加速,下载更快。
76+
- **架构灵活**: 支持多架构,适应各种环境。
77+
- **易于使用**: 单文件脚本,无需复杂配置。
78+
- **开放源代码**: 自由定制和扩展。
79+
80+
## 常见问题
5581

56-
---
82+
**Q**: 如何配置国内镜像源?
83+
**A**: 在命令行中指定仓库地址参数,例如 `docker.xuanyuan.me`
5784

58-
## 贡献
85+
**Q**: 支持哪些架构?
86+
**A**: 目前支持 amd64 和 arm64 架构。
5987

60-
欢迎提交 Issue 或 Pull Request 以改进本工具!
88+
希望通过这个工具能为您的 Docker 镜像管理带来便利! 🚀

clear.bat

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@REM 删除多余文件
2+
@REM rmdir dist /s /q
3+
rmdir build /s /q
4+
del DockerPull.exe.spec
5+
del Pipfile*
6+
7+
@REM pause

dev.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
为了减小打包的体积,需要在虚拟化环境中打包,以下为打包的步骤。
2+
3+
第一步
4+
5+
``` bat
6+
7+
set WORKON_HOME=d:\.virtualenvs
8+
9+
@REM 建立虚拟环境
10+
pipenv install
11+
@REM 进入虚拟环境
12+
pipenv shell
13+
14+
```
15+
16+
第二步,虚拟环境需要单独执行,否则会报错
17+
18+
``` bat
19+
@REM 安装依赖,在虚拟环境中
20+
pip install pyinstaller requests urllib3 -i https://pypi.tuna.tsinghua.edu.cn/simple/
21+
@REM 打包
22+
pyinstaller -F -n DockerPull.exe -i favicon.ico docker_image_puller.py
23+
@REM 卸载依赖
24+
pipenv uninstall --all
25+
@REM 删除虚拟环境
26+
pipenv --rm
27+
@REM 退出虚拟环境
28+
exit
29+
30+
```

0 commit comments

Comments
 (0)