<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國際加速解決方案。 廣告
                ## <span style="font-size:15px">**什么是鏡像層?**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鏡像是一種輕量級、可執行的獨立軟件包,用來打包軟件運行環境和基于運行環境開發的軟件,它包含運行某個軟件所需要的所有內容,包括代碼,運行時(一個程序在運行或者在被執行的依賴)、庫,環境變量和配置文件。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每個鏡像都由多個鏡像層組成。這些鏡像層都是**只讀的**,從下往上,以棧的方式組合在一起,組成鏡像的根文件系統。 ## <span style="font-size:15px">**什么是容器層?**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;當容器啟動時,一個新的**可寫層**被加載到鏡像的頂部。 這一層通常被稱作容器層(Container layer),容器層之下的都叫鏡像層(Image layers)。所有對容器的改動,無論添加、刪除、還是修改文件都只會發生在容器層中。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每個容器運行時都有自己的容器層,保存容器運行相關數據(所有文件變化數據),因為鏡像層是只讀的,所以多個容器可以共享同一個鏡像。刪除容器時,Docker Daemon會刪除容器層,保留鏡像層。 <br> ## <span style="font-size:15px">**各種ID的含義**</span> ### <span style="font-size:15px">**imageID**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鏡像的唯一標識,其數值根據該鏡像的元數據配置文件采用sha256算法的計算獲得。 ``` [root@iZbp1bum6107bp8mgzkeunZ ~]# docker image inspect nginx | jq ".[0].Id" "sha256:12766a6745eea133de9fdcd03ff720fa971fdaf21113d4bc72b417c123b15619" ``` ### <span style="font-size:15px">**chainID**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Docker內容尋址機制采用的索引ID,`docker image inspect <image_id>`查到的 RootFS 的 ID 都是 chainID, 每一個鏡像的 RootFS 的最低層的 chainID 都可以在`/var/lib/docker/image/overlay2/layerdb/sha256/`目錄下找到對應的文件夾。 `/var/lib/docker/image/overlay2/layerdb/sha256/{chainID}`目錄下可以找到`cacheID`和`diffID` ``` [root@iZbp1bum6107bp8mgzkeunZ ~]# docker image inspect nginx | jq ".[0].RootFS" { "Type": "layers", "Layers": [ "sha256:608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce", "sha256:ea207a4854e73eca698e94f323fadb920bbc5fc2af83d4bda9f47fd33fa1a076", "sha256:33cf1b723f65c22ccc4660c44fe8b919b75e7bb9ffcfe80432bb75363be34a5b", "sha256:5c77d760e1f430188e860d79c2f4efa0f082f6831046e5584810bc5ead42dc5d", "sha256:fac199a5a1a59d93dd9b23d4c3445c39070ce0d94f94def585085476f89610cf", "sha256:ea4bc0cd4a9350584676b6aa3669984eb614f559229c11dc56a85140b49f0228" ] } [root@iZbp1bum6107bp8mgzkeunZ ~]# ls /var/lib/docker/image/overlay2/layerdb/sha256/ | grep 608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce 608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce [root@iZbp1bum6107bp8mgzkeunZ ~]# ls /var/lib/docker/image/overlay2/layerdb/sha256/608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce cache-id diff size tar-split.json.gz ``` ### <span style="font-size:15px">**cacheID**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由宿主機隨即生成的一個uuid,存放于`/var/lib/docker/image/overlay2/layerdb/sha256/{chainID}/cache-id`文件中(容器層不會有 cacheID),每一個 cacheID 都對應著一個鏡像層,每一個 cacheID 對應著`/var/lib/docker/overlay2/${cache-id}`目錄 ``` [root@iZbp1bum6107bp8mgzkeunZ ~]# cat /var/lib/docker/image/overlay2/layerdb/sha256/085831b1436186cd069fbc921d93064bfe0f119cb99fb41360e20d004824e4a0/cache-id && echo 1710201f3395fe390c5ddcd9a735654da29f2cfa77eb7263a98ed4ac73abe14f [root@iZbp1bum6107bp8mgzkeunZ ~]# ls /var/lib/docker/overlay2/1710201f3395fe390c5ddcd9a735654da29f2cfa77eb7263a98ed4ac73abe14f committed diff link lower work ``` ### <span style="font-size:15px">**diffID**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鏡像層校驗ID,是根據該鏡像層的打包文件校驗獲得。存放于`/var/lib/docker/image/overlay2/layerdb/sha256/{chainID}/diff`。diffID 采用 SHA256 算法,基于鏡像層文件包的內容計算得到。而 chainID 是基于內容存儲的索引,它是根據當前層與所有上層鏡像層的`diffID `計算出來的。 ### <span style="font-size:15px">**containerID**</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容器的唯一標識,每一個容器對應一個`/var/lib/docker/containers/{container_id}`目錄。 ``` [root@iZbp1bum6107bp8mgzkeunZ ~]# docker inspect `docker ps | grep nginx-hostname | awk '{print$1}'` | jq ".[0].Id" "e38891c4d9a6b2ca9048db18e12bd2b05fa3a8d68687ea7acedab288bebf6441" [root@iZbp1bum6107bp8mgzkeunZ ~]# ls -l /var/lib/docker/containers | grep "e38891c4d9a6b2ca9048db18e12bd2b05fa3a8d68687ea7acedab288bebf6441" drwx--x--- 4 root root 4096 Nov 1 23:52 e38891c4d9a6b2ca9048db18e12bd2b05fa3a8d68687ea7acedab288bebf6441 ```
                  <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>

                              哎呀哎呀视频在线观看