<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      containerd容器存儲探究

      ContainerD 容器目錄結構探究

      啟動容器

      作為開始,我們需要去啟動一個容器。

      你可以通過命令行的方式來啟動一個容器,例如:

      ctr i pull docker.io/library/nginx:alpine
      ctr c create docker.io/library/nginx:alpine nginx
      ctr task start -d nginx
      

      或者一步到位:

      ctr run -d docker.io/library/nginx:alpine nginx
      

      也可以通過編程的方式來啟動

      import (
        "context"
      
        "github.com/containerd/containerd"
        "github.com/containerd/containerd/cio"
        "github.com/containerd/containerd/namespaces"
      )
      
      
      func main() {
      	client, err := containerd.New("/run/containerd/containerd.sock")
      	defer client.Close()
          
          context = context.Background()
          // create a context for docker
          redis, err := client.NewContainer(context, "redis-master")
          defer redis.Delete(context)
          // create a new task
          task, err := redis.NewTask(context, cio.NewCreator(cio.WithStdio))
          defer task.Delete(context)
      
          // the task is now running and has a pid that can be used to setup networking
          // or other runtime settings outside of containerd
          pid := task.Pid()
      
          // start the redis-server process inside the container
          err := task.Start(context)
      
          // wait for the task to exit and get the exit status
          status, err := task.Wait(context)
      }
      
      

      相關概念

      在 containerd 中,container 這個概念特指一個元數據對象。諸如OCI運行時規范、鏡像、根文件系統和其他元數據等資源可以附加到一個 container上。例如:

      redis, err := client.NewContainer(context, "redis-master",
      	containerd.WithNewSnapshot("redis-rootfs", image),
      	containerd.WithNewSpec(oci.WithImageConfig(image)),
      )
      

      要啟動像 docker 那樣的容器,在 containerd 中稱為 task ,一個 task 就是對進程(容器就是一個進程)的封裝。所以在上述代碼中,我們都是對一個 task 來進行這么一個 創建/進入/暫停/刪除 等操作。

      在第二個參考資料中有人探討了為何這么設計。

      容器存儲

      containerd 有兩個不同的存儲路徑,一個用來持久化,一個用來保存運行時狀態。

      root = "/var/lib/containerd"
      state = "/run/containerd"
      

      我們知道docker使用的是overlayfs2,那containerd呢?官網有這么一句話:

      \(\text{containerd allows you to use overlay or snapshot filesystems with your containers. It comes with built-in support for overlayfs and btrfs.}\)

      containerd 內置支持 overlayfs 和 btrfs ,overlayfs我們再熟悉不過了, btrfs 可能不太熟悉,不用慌,下面稍微介紹一下 btrfs。

      我們現在安裝linux系統時有時會讓你選擇文件系統例如 ext2/ext3/ext4 等,而 btrfs 被 ext4 的作者稱贊且認為其是下一代linux標準文件系統。但是目前 btrfs 還是在開發中,生產環境中 btrfs 還是很少。

      對于 overlayfs ,我們知道docker的容器分為 LowerDir 和 UpperDir ,LowerDir 為鏡像層文件,UpperDir 為容器目錄,合起來就是 MergeDir ,就是最終看到的容器目錄。那 containerd 的 LowerDir 和 UpperDir 分別在哪呢?

      root@aliyun:~# mount | grep /var/lib/containerd
      overlay on /run/containerd/io.containerd.runtime.v2.task/default/nginx/rootfs type overlay (rw,relatime,lowerdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/7/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/6/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/5/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/4/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/3/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/2/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1/fs,upperdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/8/fs,workdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/8/work,xino=off)
      

      使用 mount 命令,他直接就給你顯示了

      參考資料

      1. https://icloudnative.io/posts/getting-started-with-containerd
      2. https://github.com/containerd/containerd/discussions/4458
      3. [https://github.com/containerd/containerd
      4. https://blog.frognew.com/2021/06/relearning-container-09.html
      posted @ 2022-12-31 23:59  xDaniel  閱讀(860)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲黄色片一区二区三区| 国产成人综合色就色综合| 亚洲熟女乱色综合亚洲图片| 不卡国产一区二区三区| 又大又紧又粉嫩18p少妇| 久久久久久久久18禁秘| a男人的天堂久久a毛片| 亚洲av综合久久成人网| 久久亚洲中文字幕伊人久久大| 亚洲 欧美 综合 另类 中字| 亚洲中文无码永久免费| 精品少妇后入一区二区三区| av在线中文字幕不卡电影网| 国产精品推荐视频一区二区| 国产精品成人久久电影| 国产成人亚洲日韩欧美| 国产永久免费高清在线| 岛国中文字幕一区二区| 午夜福利日本一区二区无码| 亚洲精品理论电影在线观看| 国产91小视频在线观看| 90后极品粉嫩小泬20p| 99精品久久免费精品久久| 日本熟妇色xxxxx日本免费看| 无码日韩精品一区二区免费| 国产一区二区不卡在线| 成人亚洲欧美一区二区三区| 江川县| 四虎国产精品久久免费精品| 国产精品中文av专线| 亚洲国产成人久久精品软件| 精品国产一区二区色老头| 无码伊人66久久大杳蕉网站谷歌 | 亚洲第一无码专区天堂| 亚洲熟妇AV午夜无码不卡| 狠狠人妻久久久久久综合蜜桃| 九九热精品在线观看| 亚洲经典av一区二区| 亚洲一区成人在线视频| 成人3D动漫一区二区三区| 国产在线一区二区不卡|