# 用 Python 脚本拉取 Docker 镜像

好久没有介绍小工具了，今天碰到一个，简单粗糙但是有用的一个，这个工具有多简单粗糙呢？证据有二：

* 连 Python shebang 都没有；
    
* 简单到原创 300 字都很难凑够。
    

言归正传：安装工经常会遇到一个问题：没 Docker 怎么拉镜像？这个小工具就是做这个事情的。

该项目同样是个开源项目，地址为：https://github.com/NotGlop/docker-drag

这个项目使用 Python 的 Request 库，借助 API 直接从仓库中拉取镜像，并保存为 TAR 文件。

保存下来的 Tar 文件可以直接使用 `docker load -i` 命令进行载入。由于去掉了对 Docker/Podman/xxxx 等的依赖，在实际工作中，例如对于文件传输或者 CICD 流程来说，这个脚本都有可能发挥很有意思的作用。

用法也是相当的简单粗暴：`python3 docker_pull.py [image name]`，就完成任务了。

例如：

```shell
$ python3 docker_pull.py nginx:alpine
Creating image structure in: tmp_nginx_alpine
89d9c30c1d48: Pull complete [2787134]
110ad692b782: Pull complete [5953615]
Docker image pulled: library_nginx.tar

$ ls library_nginx.tar
library_nginx.tar
```

或者放到镜像里：

```Dockerfile
FROM alpine:3.10.3
RUN apk add -u ca-certificates python3 \
    && pip3 install requests \
    && wget https://raw.githubusercontent.com/NotGlop/docker-drag/master/docker_pull.py
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1746352540106/0ea74c9f-96c0-4e53-b891-0202f767e9c6.gif align="center")
