您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Docker和containerd的優缺點對比,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
containerd簡介
containerd是一個工業級標準的容器運行時,它強調簡單性、健壯性和可移植性。containerd可以在宿主機中管理完整的容器生命周期,包括容器鏡像的傳輸和存儲、容器的執行和管理、存儲和網絡等。
containerd是從Docker中分離出來的一個項目,可以作為一個底層容器運行時,現在它成了Kubernete容器運行時更好的選擇。
不僅僅是Docker,還有很多云平臺也支持containerd作為底層容器運行時,具體參考下圖。
K8S CRI
K8S發布CRI(Container Runtime Interface),統一了容器運行時接口,凡是支持CRI的容器運行時,皆可作為K8S的底層容器運行時。
K8S為什么要放棄使用Docker作為容器運行時,而使用containerd呢?
如果你使用Docker作為K8S容器運行時的話,kubelet需要先要通過 dockershim
去調用Docker,再通過Docker去調用containerd。
如果你使用containerd作為K8S容器運行時的話,由于containerd內置了 CRI
插件,kubelet可以直接調用containerd。
使用containerd不僅性能提高了(調用鏈變短了),而且資源占用也會變小(Docker不是一個純粹的容器運行時,具有大量其他功能)。
如果你之前用過Docker,你只要稍微花5分鐘就可以學會containerd了,接下來我們學習下containerd的使用。
在之前的文章 《據說只有高端機器才配運行K8S,網友:1G內存的渣渣跑起來了!》 中我們安裝了K3S,由于K3S中默認使用containerd作為容器運行時,我們只要安裝好K3S就可以使用它了;
其實只要把我們之前使用的 docker
命令改為 crictl
命令即可操作containerd,比如查看所有運行中的容器;
crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID 4ca73ded41bb6 3b0b04aa3473f Less than a second ago Running helm 20 21103f0058872 3bb5767a81954 296a6d5035e2d About a minute ago Running coredns 1 af887263bd869 a5e34c24be371 0346349a1a640 About a minute ago Running nginx 1 89defc6008501
查看所有鏡像;
crictl images
IMAGE TAG IMAGE ID SIZE docker.io/library/nginx 1.10 0346349a1a640 71.4MB docker.io/rancher/coredns-coredns 1.8.0 296a6d5035e2d 12.9MB docker.io/rancher/klipper-helm v0.4.3 3b0b04aa3473f 50.7MB docker.io/rancher/local-path-provisioner v0.0.14 e422121c9c5f9 13.4MB docker.io/rancher/metrics-server v0.3.6 9dd718864ce61 10.5MB docker.io/rancher/pause 3.1 da86e6ba6ca19 327kB
進入容器內部執行bash命令,這里需要注意的是只能使用容器ID,不支持使用容器名稱;
crictl exec -it a5e34c24be371 /bin/bash
查看容器中應用資源占用情況,可以發現占用非常低。
crictl stats
CONTAINER CPU % MEM DISK INODES 3bb5767a81954 0.54 14.27MB 254B 14 a5e34c24be371 0.00 2.441MB 339B 16
看完上述內容,你們對Docker和containerd的優缺點對比有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。