用 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]
,就完成任务了。
例如:
$ 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
或者放到镜像里:
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