亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

1. Docker 存儲(chǔ)目錄

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

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

/var/lib/docker/overlay2

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

/var/lib/docker/volumes

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

/var/lib/docker/network

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

/var/lib/docker/image

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

/var/lib/docker/containers

  • 存儲(chǔ)容器的配置文件和日志文件。

2. Docker 容器的根目錄

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

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

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

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

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

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

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

1. Containerd 存儲(chǔ)目錄

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

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

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

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

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

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

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

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

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

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

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

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

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

/var/lib/containerd/tmpmounts

存儲(chǔ)臨時(shí)掛載點(diǎn)。

2. Containerd 容器的根目錄

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

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

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

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

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

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

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

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

#!/bin/bash
# 獲取所有容器的ID
container_ids=$(crictl ps -q)
# 遍歷每個(gè)容器
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. 存儲(chǔ)路徑

  • 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)來(lái)管理容器的文件系統(tǒng)。
  • Docker 的存儲(chǔ)路徑在 /var/lib/docker/overlay2,而 Containerd 的存儲(chǔ)路徑在 /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)及存儲(chǔ)機(jī)制的文章就介紹到這了,更多相關(guān)Docker 和 Containerd 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    docker配置Runner容器的方法

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

    docker通過(guò)Dockerfile修改鏡像中tomcat的端口

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

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

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

最新評(píng)論