欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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:容器的可寫層,存儲容器運行時的修改。
  • 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 容器的掛載點

可以使用以下命令查看 Docker 容器的掛載點:

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

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

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

存儲容器的運行時信息。

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

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

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

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

/var/lib/containerd/tmpmounts

存儲臨時掛載點。

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 容器的掛載點

可以使用以下命令查看 Containerd 容器的掛載點:

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
    # 獲取容器的掛載點路徑
    mount_path=$(crictl inspect $container_id | jq -r '.info.runtimeSpec.mounts[] | select(.destination == "/") | .source')
    # 檢查掛載點路徑是否在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. 掛載點管理

  • Docker:使用 docker inspect 查看掛載點。
  • Containerd:使用 crictl inspect 查看掛載點。

3. 配置文件

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

4. 日志文件

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

四、實用命令

1. Docker 查看容器的掛載點:

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

2. Containerd

查看容器的掛載點

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

查看所有容器的掛載點

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 查看容器的掛載點,而 Containerd 使用 crictl inspect 查看掛載點。
  • Docker 的配置文件是 /etc/docker/daemon.json,而 Containerd 的配置文件是 /etc/containerd/config.toml。

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

相關(guān)文章

  • Docker安裝logstash的詳細(xì)過程

    Docker安裝logstash的詳細(xì)過程

    這篇文章主要介紹了Docker安裝logstash的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Docker 限制容器對內(nèi)存的使用詳解

    Docker 限制容器對內(nèi)存的使用詳解

    這篇文章主要介紹了Docker 限制容器對內(nèi)存的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • idea?連接遠(yuǎn)程?docker?并部署項目到?docker的過程

    idea?連接遠(yuǎn)程?docker?并部署項目到?docker的過程

    這篇文章主要介紹了idea連接遠(yuǎn)程docker并部署項目到docker,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10
  • 詳解Docker創(chuàng)建Mysql容器并通過命令行連接到容器

    詳解Docker創(chuàng)建Mysql容器并通過命令行連接到容器

    本篇文章主要介紹了Docker創(chuàng)建Mysql容器并通過命令行連接到容器,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • 最新IDEA快速實現(xiàn)Docker鏡像部署運行的過程詳解

    最新IDEA快速實現(xiàn)Docker鏡像部署運行的過程詳解

    這篇文章主要介紹了最新IDEA快速實現(xiàn)Docker鏡像部署運行的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 淺談Docker鏡像列表中的none:none是什么

    淺談Docker鏡像列表中的none:none是什么

    這篇文章主要介紹了Docker鏡像列表中的none:none問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用Docker搭建ELK日志系統(tǒng)的方法示例

    使用Docker搭建ELK日志系統(tǒng)的方法示例

    這篇文章主要介紹了使用Docker搭建ELK日志系統(tǒng)的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • docker配置Runner容器的方法

    docker配置Runner容器的方法

    今天通過本文給大家介紹docker配置Runner容器的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • docker通過Dockerfile修改鏡像中tomcat的端口

    docker通過Dockerfile修改鏡像中tomcat的端口

    8080端口會經(jīng)常出現(xiàn)被占用的情況,本文主要介紹了docker通過Dockerfile修改鏡像中tomcat的端口,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 在Dockerfile中copy和add的區(qū)別及說明

    在Dockerfile中copy和add的區(qū)別及說明

    COPY和ADD都是Dockerfile中用于文件復(fù)制的命令,但COPY僅用于本地文件或目錄的復(fù)制,不支持自動解壓縮;而ADD除了復(fù)制本地文件或目錄外,還支持解壓縮和從URL下載文件,在一般情況下,建議使用COPY命令
    2025-03-03

最新評論