目录

docker的镜像搬运工具

我们需要在多个docker仓库之间搬运,或者把仓库的镜像搬运到本地,或者搬运到本地的时候extract展开,这里讨论常用的方法

occystrap 搬运

项目地址:https://github.com/shakenfist/occystrap

安装方式:pip install occystrap

如果你要访问的repo仓库是 https自签证书的,浏览器直接访问https会报错的那种,需要补丁下代码,默认的代码是强校验https证书,不通过会失败。

访问:.venv\Lib\site-packages\occystrap\util.py 或者取决于使用的 python解释器的位置。 实在找不到,就用 everything全局搜索occystrap文件夹

找到

util.py
# 找到 request_url 函数,修改为【增加:verify=False)】
def request_url(method, url, headers=None, data=None, stream=False):
    if not headers:
        headers = {}
    headers.update({'User-Agent': get_user_agent()})
    if data:
        headers['Content-Type'] = 'application/json'
    r = requests.request(method, url,
                         data=json.dumps(data),
                         headers=headers,
                         stream=stream,
                         verify=False)

即可正常执行docker搬运,默认支持:

这里以远程下载docker镜像,并在本地解压为例,方便我们脱离docker环境查看镜像的内容。

参数风格: repo仓库ip或地址 镜像坐标 版本号 本地的文件夹路径

occystrap fetch-to-extracted 172.10.10.10 public/nginx 1.1.1 nginx-1.1.1.1

使用skopeo搬运

sudo apt install skopeo

然后把远程镜像导出到本地,不解压的导出

skopeo copy –src-tls-verify=false docker:10.0.0.1/public/nginx:1.1.1 dir:./local-image'' src-tls-verify 是可选的,如果是本地自签证书,就需要人肉忽略