Python 脚本拉取 Docker 镜像问题

yipeiwu_com5年前Python基础

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

连 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

 

总结

以上所述是小编给大家介绍的Python 脚本拉取 Docker 镜像问题,希望对大家有所帮助!

相关文章

Python3中多线程编程的队列运作示例

Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端 #! /usr/bin/env python3 import time i...

查看TensorFlow checkpoint文件中的变量名和对应值方法

实例如下所示: from tensorflow.python import pywrap_tensorflow checkpoint_path = os.path.join(mode...

在python中使用with打开多个文件的方法

虽然初恋是java, 可是最近是越来越喜欢python, 所以决定追根溯源好好了解下python的原理,架构等等.小脑袋瓜不太好使,只能记录下慢慢进步吧 使用with打开文件的好处不多说...

Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)

之前自己也遇到过一次,这段时间在群里也遇到过几次的一个问题 用python2.7写的一段程序,里面用到了字典推导式,但是服务器版本是python2.6,无法运行。 今天查了下关于Dict...

python 字段拆分详解

按照固定的字符,拆分已有的字符串 split(sep, n, expand = False) :sep:用于分割的字符串 n:分割为多少列 expand:是否展开为数据框,默认值为Fal...