首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qping
V2EX  ›  Docker

docker 如何导出某个镜像增量部分?

  •  
  •   qping · 78 天前 · 2532 次点击
    这是一个创建于 78 天前的主题,其中的信息可能已经有所发展或是发生改变。

    离线生产环境下需要 docker save 镜像,然后 dock load 导入。

    我的问题是 docker save 导出的是个完整的镜像,当有变动时,每次都传输完整镜像特别浪费时间,在现场环境执行 load 时可以看出来 docker 只会导入变动的 layer

    有没有什么工具可以根据 tag 导出 docker 增量部分?

    第 1 条附言  ·  47 天前

    有人收藏了,分享下最后的解决方法是用了一个python脚本。

    比较两个tag的镜像,只导出不同的layer,最后docker load 可以导入过去。 使用方法:

     python diff.py -o 镜像名:旧tag  -n 镜像名:新tag
    

    diff.py 代码在这里: https://gist.github.com/qpingcode/ffdd42e7eb3617ba88597f86b2c2cfa7

    7 条回复    2020-04-21 09:24:03 +08:00
    jakezh
        1
    jakezh   78 天前 via iPhone
    diff 生产 patch 然后服务器 apply patch
    不过正常思路是上传到 hub
    ETiV
        2
    ETiV   78 天前 via iPhone
    为什么不自建个私有 repository
    qping
        3
    qping   78 天前
    @jakezh #1 @ETiV #2 私服 registry 是搭了的,但是生产环境是断网的,没有外网
    qping
        4
    qping   78 天前
    @jakezh #1 你是说 git 的 diff 然后生成 patch 吗,docker 没有找到相关的命令。。
    ETiV
        5
    ETiV   78 天前 via iPhone
    自建机房吗?可能没招

    我们在用阿里云。他们的托管式镜像服务,都可以公网推、内网拉
    jakezh
        6
    jakezh   78 天前 via iPhone   ❤️ 1
    @qping 你把 tar 文件打开 看看里面的 layer 那个文件夹就明白了
    diff -urN 然后 patch -pX
    qping
        7
    qping   77 天前
    @jakezh #6 谢谢老哥,大概知道怎么弄了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3904 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 01:10 · PVG 09:10 · LAX 18:10 · JFK 21:10
    ♥ Do have faith in what you're doing.