最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 和 Containerd 目錄結(jié)構(gòu)及存儲機(jī)制詳解

 更新時間:2025年02月11日 15:05:58   作者:喝醉酒的小白  
Docker和Containerd是兩種流行的容器運(yùn)行時工具,它們都有自己的目錄結(jié)構(gòu)和存儲機(jī)制,本文詳細(xì)介紹了Docker和Containerd的目錄結(jié)構(gòu)和存儲機(jī)制,并對比了它們之間的主要區(qū)別,包括存儲路徑、掛載點(diǎn)管理、配置文件和日志文件,感興趣的朋友一起看看吧

Docker 和 Containerd 目錄結(jié)構(gòu)及存儲機(jī)制筆記

一、Docker 目錄結(jié)構(gòu)與存儲機(jī)制

1. Docker 存儲目錄

Docker 默認(rèn)將數(shù)據(jù)存儲在 /var/lib/docker 目錄下。這個目錄包含以下子目錄和文件:

  • /var/lib/docker/containers
    • 存儲每個容器的配置文件和日志文件。
    • 每個容器的目錄以容器ID命名,包含 config.v2.json 和日志文件。

/var/lib/docker/overlay2

  • 存儲使用 Overlay2 存儲驅(qū)動的容器文件系統(tǒng)。每個容器的文件系統(tǒng)由多個層組成,包括只讀層(鏡像層)和可寫層(容器層)。
  • merged:聯(lián)合掛載后的目錄,容器的根目錄。
  • diff:容器的可寫層,存儲容器運(yùn)行時的修改。
  • lower:記錄父層的哈希值。

/var/lib/docker/volumes

  • 存儲 Docker 卷的數(shù)據(jù)。
  • 每個卷的目錄以卷名命名,包含卷的數(shù)據(jù)。

/var/lib/docker/network

  • 存儲 Docker 網(wǎng)絡(luò)相關(guān)的配置和狀態(tài)信息。

/var/lib/docker/image

  • 存儲鏡像的元數(shù)據(jù)。

/var/lib/docker/containers

  • 存儲容器的配置文件和日志文件。

2. Docker 容器的根目錄

Docker 容器的根目錄位于 /var/lib/docker/overlay2 下的 merged 目錄。例如:

  • /var/lib/docker/overlay2/<layer_id>/merged

<layer_id>:容器的文件系統(tǒng)層的唯一標(biāo)識符。

3. 查看 Docker 容器的掛載點(diǎn)

可以使用以下命令查看 Docker 容器的掛載點(diǎn):

docker inspect --format '{{.GraphDriver.Data.WorkDir}}' <容器ID>

二、Containerd 目錄結(jié)構(gòu)與存儲機(jī)制

1. Containerd 存儲目錄

Containerd 默認(rèn)將數(shù)據(jù)存儲在 /var/lib/containerd 目錄下。這個目錄包含以下子目錄和文件:

/var/lib/containerd/io.containerd.content.v1.content

存儲容器鏡像的內(nèi)容。

/var/lib/containerd/io.containerd.grpc.v1.cri

存儲與 Kubernetes CRI(Container Runtime Interface)相關(guān)的數(shù)據(jù)。

/var/lib/containerd/io.containerd.metadata.v1.bolt

存儲元數(shù)據(jù),使用 BoltDB。

/var/lib/containerd/io.containerd.runtime.v1.linux

存儲容器的運(yùn)行時信息。

/var/lib/containerd/io.containerd.runtime.v2.task

存儲容器的運(yùn)行時任務(wù)信息。

/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs

存儲使用 OverlayFS 文件系統(tǒng)的容器快照。

/var/lib/containerd/tmpmounts

存儲臨時掛載點(diǎn)。

2. Containerd 容器的根目錄

Containerd 容器的根目錄通常位于 /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs 下的某個快照目錄中。例如:

/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/<snapshot_id>/fs

<snapshot_id>:快照的唯一標(biāo)識符。

3. 查看 Containerd 容器的掛載點(diǎn)

可以使用以下命令查看 Containerd 容器的掛載點(diǎn):

crictl inspect <容器ID> | jq -r '.info.runtimeSpec.mounts[] | select(.destination == "/") | .source'

4. 查找快照與容器的對應(yīng)關(guān)系

以下是一個示例腳本,幫助你找到每個快照對應(yīng)的容器:

#!/bin/bash
# 獲取所有容器的ID
container_ids=$(crictl ps -q)
# 遍歷每個容器
for container_id in $container_ids; do
    # 獲取容器的掛載點(diǎn)路徑
    mount_path=$(crictl inspect $container_id | jq -r '.info.runtimeSpec.mounts[] | select(.destination == "/") | .source')
    # 檢查掛載點(diǎn)路徑是否在snapshots目錄中
    if [ -n "$mount_path" ]; then
        snapshot_id=$(basename $mount_path)
        echo "Container ID: $container_id, Snapshot ID: $snapshot_id"
    fi
done

三、Docker 和 Containerd 的主要區(qū)別

1. 存儲路徑

  • Docker/var/lib/docker/overlay2
  • Containerd/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs

2. 掛載點(diǎn)管理

  • Docker:使用 docker inspect 查看掛載點(diǎn)。
  • Containerd:使用 crictl inspect 查看掛載點(diǎn)。

3. 配置文件

  • Docker/etc/docker/daemon.json
  • ???????Containerd/etc/containerd/config.toml

4. 日志文件

  • Docker/var/log/docker.log
  • ???????Containerd/var/log/containerd.log

四、實(shí)用命令

1. Docker 查看容器的掛載點(diǎn):

docker inspect --format '{{.GraphDriver.Data.WorkDir}}' <容器ID>

2. Containerd

查看容器的掛載點(diǎn)

crictl inspect <容器ID> | jq -r '.info.runtimeSpec.mounts[] | select(.destination == "/") | .source'

查看所有容器的掛載點(diǎn)

crictl ps -q | xargs -I {} sh -c 'crictl inspect {} | jq -r ".info.runtimeSpec.mounts[] | select(.destination == \"/\") | .source"'

五、總結(jié)

  • DockerContainerd 都使用 OverlayFS 文件系統(tǒng)來管理容器的文件系統(tǒng)。
  • Docker 的存儲路徑在 /var/lib/docker/overlay2,而 Containerd 的存儲路徑在 /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs。
  • Docker 使用 docker inspect 查看容器的掛載點(diǎn),而 Containerd 使用 crictl inspect 查看掛載點(diǎn)。
  • Docker 的配置文件是 /etc/docker/daemon.json,而 Containerd 的配置文件是 /etc/containerd/config.toml

到此這篇關(guān)于Docker 和 Containerd 目錄結(jié)構(gòu)及存儲機(jī)制的文章就介紹到這了,更多相關(guān)Docker 和 Containerd 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用docker搭建sonarqube的方法

    使用docker搭建sonarqube的方法

    這篇文章主要介紹了使用docker搭建sonarqube的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Docker容器如何查看ip地址的實(shí)現(xiàn)方法

    Docker容器如何查看ip地址的實(shí)現(xiàn)方法

    這篇文章主要介紹了Docker容器如何查看ip地址的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 推送docker鏡像到harbor的實(shí)現(xiàn)方式

    推送docker鏡像到harbor的實(shí)現(xiàn)方式

    這篇文章主要介紹了推送docker鏡像到harbor的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Docker volumes數(shù)據(jù)導(dǎo)出的五種實(shí)用方法

    Docker volumes數(shù)據(jù)導(dǎo)出的五種實(shí)用方法

    在容器化應(yīng)用的日常運(yùn)維中,數(shù)據(jù)管理是一個至關(guān)重要的環(huán)節(jié),Docker volumes作為Docker推薦的數(shù)據(jù)持久化方案,承載著應(yīng)用程序的關(guān)鍵數(shù)據(jù),本文將詳細(xì)介紹5種實(shí)用的Docker volumes數(shù)據(jù)導(dǎo)出方法,每種方法都有其適用場景,需要的朋友可以參考下
    2025-09-09
  • 使用Docker部署war包項(xiàng)目的實(shí)現(xiàn)

    使用Docker部署war包項(xiàng)目的實(shí)現(xiàn)

    這篇文章主要介紹了使用Docker部署war包項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 基于docker部署Jenkins的詳細(xì)教程

    基于docker部署Jenkins的詳細(xì)教程

    這篇文章主要介紹了基于docker部署Jenkins,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法

    Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了Linux下docker 容器退出bash的兩種實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker?監(jiān)控平臺部署的兩種實(shí)現(xiàn)步驟

    Docker?監(jiān)控平臺部署的兩種實(shí)現(xiàn)步驟

    本文主要介紹了Docker?監(jiān)控平臺部署的兩種實(shí)現(xiàn)步驟,包括cAdvisor、Prometheus和Grafana,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • Docker容器內(nèi)安裝ps命令的詳細(xì)操作步驟

    Docker容器內(nèi)安裝ps命令的詳細(xì)操作步驟

    在 Docker 容器的日常管理和故障排查過程中,ps命令是一個不可或缺的工具,當(dāng)我們在容器內(nèi)執(zhí)行ps命令時,可能會遇到報(bào)錯,下面我們就來看看如何根據(jù)不同的 Linux 發(fā)行版,采用相應(yīng)的方法來安裝ps命令吧
    2025-06-06
  • Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法

    Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法

    這篇文章主要介紹了Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論

梨树县| 永康市| 秭归县| 民勤县| 封丘县| 冷水江市| 松桃| 万年县| 桐柏县| 新民市| 福海县| 江达县| 揭西县| 西乌珠穆沁旗| 沾化县| 静乐县| 玉溪市| 沾益县| 河津市| 龙川县| 柏乡县| 叙永县| 太和县| 本溪| 班玛县| 城市| 张家界市| 同德县| 泸溪县| 拜城县| 阜康市| 金湖县| 乌审旗| 鄱阳县| 磐安县| 楚雄市| 无锡市| 古浪县| 当阳市| 绵竹市| 绥棱县|