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

怎么从 docker history 中任意一层创建出来一个新的镜像

  •  
  •   fqzz · 2022-12-15 21:06:24 +08:00 · 1171 次点击
    这是一个创建于 742 天前的主题,其中的信息可能已经有所发展或是发生改变。

    git 可以从任意的 commit 创建出来一个 branch ,那 docker pull 下来的镜像,我怎么从 history 中的任意一层创建出来镜像?

    5 条回复    2022-12-16 10:45:03 +08:00
    CEBBCAT
        1
    CEBBCAT  
       2022-12-15 22:28:10 +08:00 via iPhone
    你做过的研究是?
    dzdh
        2
    dzdh  
       2022-12-15 23:07:04 +08:00   ❤️ 1
    目测行不通。

    假设有一层是 apt-get install nginx

    你要这一层的什么?只要 nginx 的 docs 、binary 、config ?还是从第一层开始的 from ubuntu/debian/centos/.... 都要?

    如果只要 nginx 的 docs/binary/config 。那下载 deb 解压 from scratch copy 就行了。

    如果是从第一层开始的全部都要,那你 from 他把那一层之后的修改都删了就行了呗?
    wunonglin
        4
    wunonglin  
       2022-12-16 04:05:38 +08:00
    你的目的是什么
    fqzz
        5
    fqzz  
    OP
       2022-12-16 10:45:03 +08:00
    @wunonglin @dzdh
    我补充一下背景,有一台机器用于打包镜像,有很多镜像基于同一个 base 打出来的,但是这个 base 没有被推到仓库里面,只把最终需要发布的镜像推上去了。所以这个机器重装后,找不到 base 镜像了。

    @CEBBCAT
    我也做过啥研究,看了 @dcsuibian 提到的帖子,但是这个好像依赖本地的 cache 。我这 docker history 看到一堆 missing ,不知道咋操作,比如:
    ```
    ➜ ~ docker history mcr.microsoft.com/mssql/server:2019-CU16-ubuntu-20.04
    IMAGE CREATED CREATED BY SIZE COMMENT
    f554c0722914 8 months ago /bin/sh -c #(nop) CMD ["/opt/mssql/bin/sqls… 0B
    <missing> 8 months ago /bin/sh -c #(nop) ENTRYPOINT ["/opt/mssql/b… 0B
    <missing> 8 months ago /bin/sh -c #(nop) USER mssql 0B
    <missing> 8 months ago /bin/sh -c /tmp/install.sh 225MB
    <missing> 8 months ago /bin/sh -c #(nop) COPY dir:acfdd267f3b0f4031… 1.34GB
    <missing> 8 months ago /bin/sh -c #(nop) EXPOSE 1433 0B
    <missing> 8 months ago /bin/sh -c #(nop) LABEL vendor=Microsoft co… 0B
    <missing> 8 months ago /bin/sh -c #(nop) CMD ["bash"] 0B
    <missing> 8 months ago /bin/sh -c #(nop) ADD file:b83df51ab7caf8a4d… 72.8MB
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3125 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.