再見 Docker !分分鐘轉型 Containerd

      網友投稿 916 2025-03-31

      Kubernetes 官方發布公告,宣布自 v1.20 起放棄對 Docker 的支持。目前,Kubelet 中的 Docker 支持功能現已棄用,并將在之后的版本中被刪除。

      再來看下面這張圖(來源網絡)

      從上圖中可以看出 docker 對容器的管理和操作基本都是通過 containerd 完成的。所以,如果大家想從 docker 遷移出來,那么 Containerd 是一個非常不錯的先擇。

      今天,民工哥就和大家來聊一聊這個開源技術 Containerd。

      Containerd 概述

      很早之前的 Docker Engine 中就有了containerd,只不過現在是將 containerd 從 Docker Engine 里分離出來,作為一個獨立的開源項目,目標是提供一個更加開放、穩定的容器運行基礎設施。分離出來的 containerd 將具有更多的功能,涵蓋整個容器運行時管理的所有需求,提供更強大的支持。

      簡單的來說,containerd 是一個工業級標準的容器運行時,它強調簡單性、健壯性和可移植性。containerd可以在宿主機中管理完整的容器生命周期,包括容器鏡像的傳輸和存儲、容器的執行和管理、存儲和網絡等。

      地址:https://github.com/containerd/containerd/

      containerd 架構

      其中,grpc 模塊向上層提供服務接口,metrics 則提供監控數據(cgroup 相關數據),兩者均向上層提供服務。containerd 包含一個守護進程,該進程通過本地 UNIX 套接字暴露 grpc 接口。

      storage 部分負責鏡像的存儲、管理、拉取等 metadata 管理容器及鏡像的元數據,通過bootio存儲在磁盤上 task -- 管理容器的邏輯結構,與 low-level 交互 event -- 對容器操作的事件,上層通過訂閱可以知道發生了什么事情 Runtimes -- low-level runtime(對接 runc)

      Containerd 能做什么??

      管理容器的生命周期(從創建容器到銷毀容器)

      拉取/推送容器鏡像

      存儲管理(管理鏡像及容器數據的存儲)

      調用 runC 運行容器(與 runC 等容器運行時交互)

      管理容器網絡接口及網絡

      從 k8s 的角度看,選擇 containerd作為運行時的組件,它調用鏈更短,組件更少,更穩定,占用節點資源更少。

      上圖來源 containerd官方網站,containerd可用作 Linux 和 Windows 的守護程序。它管理其主機系統的完整容器生命周期,從圖像傳輸和存儲到容器執行和監督,再到低級存儲到網絡附件等等。

      安裝

      -:https://containerd.io/downloads/

      [root@centos7?~]#?wget?https://github.com/containerd/containerd/releases/download/v1.5.2/containerd-1.5.2-linux-amd64.tar.gz

      [root@centos7?~]#?tar?zxf?containerd-1.5.2-linux-amd64.tar.gz?-C?/usr/local/

      #通過上面的操作,將containerd?安裝至/usr/local/bin目錄下

      [root@centos7?~]#?cd?/usr/local/bin/

      [root@centos7?bin]#?ll

      total?98068

      -rwxr-xr-x?1?root?root???214432?Mar?29?05:20?bpytop

      -rwxr-xr-x?1?1001??116?49049696?May?19?12:56?containerd

      -rwxr-xr-x?1?1001??116??6434816?May?19?12:56?containerd-shim

      -rwxr-xr-x?1?1001??116??8671232?May?19?12:57?containerd-shim-runc-v1

      -rwxr-xr-x?1?1001??116??8683520?May?19?12:57?containerd-shim-runc-v2

      -rwxr-xr-x?1?1001??116?27230976?May?19?12:56?ctr

      lrwxrwxrwx?1?root?root????????6?Mar?28?00:13?nc?->?netcat

      -rwxr-xr-x?1?root?root???126800?Mar?28?00:13?netcat

      生成默認配置文件

      [root@centos7?bin]#?containerd?config?default?>?/etc/containerd/config.toml

      [root@centos7?bin]#?ll?/etc/containerd/config.toml

      -rw-r--r--?1?root?root?6069?Jun??4?14:47?/etc/containerd/config.toml

      配置 containerd 作為服務運行

      [root@centos7?~]#?touch?/lib/systemd/system/containerd.service

      [root@centos7?bin]#?vim?/lib/systemd/system/containerd.service

      [Unit]

      Description=containerd?container?runtime

      Documentation=https://containerd.io

      After=network.target

      [Service]

      ExecStartPre=/sbin/modprobe?overlay

      ExecStart=/usr/local/bin/containerd

      Delegate=yes

      KillMode=process

      LimitNOFILE=1048576

      #?Having?non-zero?Limit*s?causes?performance?problems?due?to?accounting?overhead

      #?in?the?kernel.?We?recommend?using?cgroups?to?do?container-local?accounting.

      LimitNPROC=infinity

      LimitCORE=infinity

      [Install]

      WantedBy=multi-user.target

      啟動服務

      [root@centos7?~]#?systemctl?daemon-reload

      [root@centos7?~]#?systemctl?start?containerd.service

      [root@centos7?~]#?systemctl?status?containerd.service

      containerd 使用

      其實,史上最輕量 Kubernetes 發行版 K3s 默認就包括了 containerd、Flannel、CoreDNS 組件。

      ctr:是containerd本身的CLI

      crictl :是Kubernetes社區定義的專門CLI工具

      [root@centos7?~]#?ctr?version

      Client:

      Version:??v1.5.2

      Revision:?36cc874494a56a253cd181a1a685b44b58a2e34a

      Go?version:?go1.16.4

      Server:

      Version:??v1.5.2

      Revision:?36cc874494a56a253cd181a1a685b44b58a2e34a

      UUID:?ebe42dac-40ae-4af1-99b0-52e61728c918

      幫助信息

      [root@centos7?~]#?ctr?--help

      NAME:

      ctr?-

      __

      _____/?/______

      /?___/?__/?___/

      /?/__/?/_/?/

      \___/\__/_/

      containerd?CLI

      USAGE:

      ctr?[global?options]?command?[command?options]?[arguments...]

      再見 Docker !分分鐘轉型 Containerd

      VERSION:

      v1.5.2

      DESCRIPTION:

      ctr?is?an?unsupported?debug?and?administrative?client?for?interacting

      with?the?containerd?daemon.?Because?it?is?unsupported,?the?commands,

      options,?and?operations?are?not?guaranteed?to?be?backward?compatible?or

      stable?from?release?to?release?of?the?containerd?project.

      COMMANDS:

      plugins,?plugin????????????provides?information?about?containerd?plugins

      version????????????????????print?the?client?and?server?versions

      containers,?c,?container???manage?containers

      content????????????????????manage?content

      events,?event??????????????display?containerd?events

      images,?image,?i???????????manage?images

      leases?????????????????????manage?leases

      namespaces,?namespace,?ns??manage?namespaces

      pprof??????????????????????provide?golang?pprof?outputs?for?containerd

      run????????????????????????run?a?container

      snapshots,?snapshot????????manage?snapshots

      tasks,?t,?task?????????????manage?tasks

      install????????????????????install?a?new?package

      oci????????????????????????OCI?tools

      shim???????????????????????interact?with?a?shim?directly

      help,?h????????????????????Shows?a?list?of?commands?or?help?for?one?command

      GLOBAL?OPTIONS:

      --debug??????????????????????enable?debug?output?in?logs

      --address?value,?-a?value????address?for?containerd's?GRPC?server?(default:?"/run/containerd/containerd.sock")?[$CONTAINERD_ADDRESS]

      --timeout?value??????????????total?timeout?for?ctr?commands?(default:?0s)

      --connect-timeout?value??????timeout?for?connecting?to?containerd?(default:?0s)

      --namespace?value,?-n?value??namespace?to?use?with?commands?(default:?"default")?[$CONTAINERD_NAMESPACE]

      --help,?-h???????????????????show?help

      --version,?-v????????????????print?the?version

      查看與刪除

      [root@centos7?~]#?ctr?container?list

      CONTAINER????IMAGE?????????????????????????????RUNTIME

      nginx????????docker.io/library/nginx:alpine????io.containerd.runc.v2

      [root@centos7?~]#?ctr?container?del?nginx

      [root@centos7?~]#?ctr?container?list

      CONTAINER????IMAGE????RUNTIME

      pull鏡像文件

      [root@centos7?~]#?ctr?images?pull?docker.io/library/nginx:alpine

      查看鏡像文件列表

      [root@centos7?~]#?ctr?images?list

      REF????????????????????????????TYPE??????????????????????????????????????????????????????DIGEST??????????????????????????????????????????????????????????????????SIZE????PLATFORMS????????????????????????????????????????????????????????????????????????????????LABELS

      docker.io/library/nginx:alpine?application/vnd.docker.distribution.manifest.list.v2+json?sha256:0f8595aa040ec107821e0409a1dd3f7a5e989501d5c8d5b5ca1f955f33ac81a0?9.4?MiB?linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x?-

      運行容器

      [root@centos7?~]#?ctr?run?-d?docker.io/library/nginx:alpine?nginx

      [root@centos7?~]#?ctr?container?list

      CONTAINER????IMAGE?????????????????????????????RUNTIME

      nginx????????docker.io/library/nginx:alpine????io.containerd.runc.v2

      一圈使用下來,基本上與docker的命令相差無幾,使用上沒有什么大的學習成本,所以,無論是 Kubernetes 是否支持 docker,對于我們使用者來講,問題不大。

      更多相關的介紹與實際操作指南,大家可以參閱官方文檔,都有詳細的使用說明。

      Docker 容器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:資產統計報表填報(資產統計表格
      下一篇:文本對齊方式(excel文本對齊方式)
      相關文章
      亚洲精品乱码久久久久久| 亚洲精品久久久久无码AV片软件| 国产精品亚洲专区无码唯爱网| 亚洲AV一二三区成人影片| 亚洲精品美女在线观看播放| 亚洲韩国—中文字幕| 亚洲AV综合色区无码一区爱AV| 国产亚洲老熟女视频| 国产性爱在线观看亚洲黄色一级片 | 国产性爱在线观看亚洲黄色一级片 | 国产L精品国产亚洲区久久| 亚洲AV蜜桃永久无码精品| 一本色道久久88亚洲综合| 亚洲AV蜜桃永久无码精品| 亚洲国产精品丝袜在线观看| 亚洲AV网站在线观看| 亚洲性日韩精品一区二区三区| 久久久久久久亚洲精品| 亚洲日本乱码在线观看| 亚洲美女又黄又爽在线观看| 亚洲成av人影院| 亚洲av日韩av不卡在线观看| 亚洲人成在线播放网站岛国| 久久精品国产亚洲AV无码麻豆 | 亚洲爆乳大丰满无码专区| 亚洲av无码一区二区三区在线播放| 亚洲av无码一区二区三区在线播放| 国产成人亚洲精品无码AV大片| 亚洲第一视频在线观看免费| 亚洲乱码中文字幕手机在线| 亚洲综合av永久无码精品一区二区| 亚洲成AV人片一区二区| 337p欧洲亚洲大胆艺术| 亚洲五月综合缴情婷婷| 亚洲另类无码专区首页| 亚洲黄黄黄网站在线观看| 亚洲欧洲∨国产一区二区三区| 亚洲精品高清国产一久久| 亚洲日本在线播放| 亚洲日本VA中文字幕久久道具| 亚洲国产成人AV网站|