qping
V2EX  ›  Docker

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

  •  
  •   qping · Apr 20, 2020 · 6920 views
    This topic created in 2398 days ago, the information mentioned may be changed or developed.

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

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

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

    Supplement 1  ·  May 21, 2020

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

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

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

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

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

    我们在用阿里云。他们的托管式镜像服务,都可以公网推、内网拉
    jakezh
    jakezh
    Apr 20, 2020 via iPhone❤️1
    6
    @qping 你把 tar 文件打开 看看里面的 layer 那个文件夹就明白了
    diff -urN 然后 patch -pX
    qping
    qping
    OP
    Apr 21, 2020
    7
    @jakezh #6 谢谢老哥,大概知道怎么弄了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2390 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:16 · PVG 11:16 · LAX 19:16 · JFK 22:16
    ♥ Do have faith in what you're doing.