<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                1、當前環境上有一個nginx鏡像,查看它的分層結構。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Layers中除了第一個(因為第一個是底層鏡像,因此它本身就是chanid),其他每一個值都是哈希計算之后的`chainID`,對應著每一個鏡像層`cacheID`。 ``` [root@iZbp1bum6107bp8mgzkeunZ ~]# docker images | grep nginx nginx latest 12766a6745ee 7 months ago 142MB [root@iZbp1bum6107bp8mgzkeunZ ~]# docker image inspect nginx | jq ".[0].RootFS" { "Type": "layers", "Layers": [ "sha256:608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce", "sha256:ea207a4854e73eca698e94f323fadb920bbc5fc2af83d4bda9f47fd33fa1a076", "sha256:33cf1b723f65c22ccc4660c44fe8b919b75e7bb9ffcfe80432bb75363be34a5b", "sha256:5c77d760e1f430188e860d79c2f4efa0f082f6831046e5584810bc5ead42dc5d", "sha256:fac199a5a1a59d93dd9b23d4c3445c39070ce0d94f94def585085476f89610cf", "sha256:ea4bc0cd4a9350584676b6aa3669984eb614f559229c11dc56a85140b49f0228" ] } ``` 2、通過計算layers中的這些值,就可以找到這個鏡像的所有鏡像層。 &nbsp;&nbsp;&nbsp;計算步驟如下: 1. 由于鏡像層在構建容器時,是由上到下依次構建,因此第一層的鏡像層id是最底層的,sha256之后的隨機數值即使chainID值 2. 根據公式,由第一層的值加上空格,拼接第二層的diffID值,使用sha256sum命令計算SHA256哈希值,得出的結果就是第二層的chainID。 3. 第三層的chainID,即使用 “sha256:”拼接第二層的chainID來與第三層的diffID來計算,依次類推。 計算過程: 1. Layers中第一層是底層,因此`608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce`可以直接在`/var/lib/docker/image/overlay2/layerdb/sha256/`目錄中可以找到。 2. 第二層通過使用上一層的chainID和它本身的哈希值做哈希計算,得出chainID值,并且在該目錄下可以找到CacheID,從而找到鏡像層。 3. 以此類推。 ![](https://img.kancloud.cn/b0/f0/b0f00b4b4b7c8e2dad69d3200287d33d_1842x554.png) <br><br> **結論:** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;docker通過存儲驅動將鏡像層經過哈希值計算之后存儲到對應目錄下,并且將哈希值信息寫入鏡像元數據,可以通過元數據中的這些哈希值信息計算得出chainID,再根據chainID找到對應目錄下的cacheID和diffID,從而找到對應的鏡像層數據。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看