再見(jiàn) Docker如何5分鐘轉(zhuǎn)型 containerd
Docker作為非常流行的容器技術(shù),之前經(jīng)常有文章說(shuō)它被K8S棄用了,取而代之的是另一種容器技術(shù)containerd!其實(shí)containerd只是從Docker中分離出來(lái)的底層容器運(yùn)行時(shí),使用起來(lái)和Docker并沒(méi)有啥區(qū)別,本文主要介紹下containerd的使用,希望對(duì)大家有所幫助!
containerd簡(jiǎn)介
containerd是一個(gè)工業(yè)級(jí)標(biāo)準(zhǔn)的容器運(yùn)行時(shí),它強(qiáng)調(diào)簡(jiǎn)單性、健壯性和可移植性。containerd可以在宿主機(jī)中管理完整的容器生命周期,包括容器鏡像的傳輸和存儲(chǔ)、容器的執(zhí)行和管理、存儲(chǔ)和網(wǎng)絡(luò)等。
Docker vs containerd
containerd是從Docker中分離出來(lái)的一個(gè)項(xiàng)目,可以作為一個(gè)底層容器運(yùn)行時(shí),現(xiàn)在它成了Kubernete容器運(yùn)行時(shí)更好的選擇。
不僅僅是Docker,還有很多云平臺(tái)也支持containerd作為底層容器運(yùn)行時(shí),具體參考下圖。
K8S CRI
K8S發(fā)布CRI(Container Runtime Interface),統(tǒng)一了容器運(yùn)行時(shí)接口,凡是支持CRI的容器運(yùn)行時(shí),皆可作為K8S的底層容器運(yùn)行時(shí)。
K8S為什么要放棄使用Docker作為容器運(yùn)行時(shí),而使用containerd呢?
如果你使用Docker作為K8S容器運(yùn)行時(shí)的話,kubelet需要先要通過(guò) dockershim
去調(diào)用Docker,再通過(guò)Docker去調(diào)用containerd。
如果你使用containerd作為K8S容器運(yùn)行時(shí)的話,由于containerd內(nèi)置了 CRI
插件,kubelet可以直接調(diào)用containerd。
使用containerd不僅性能提高了(調(diào)用鏈變短了),而且資源占用也會(huì)變?。―ocker不是一個(gè)純粹的容器運(yùn)行時(shí),具有大量其他功能)。
containerd使用
如果你之前用過(guò)Docker,你只要稍微花5分鐘就可以學(xué)會(huì)containerd了,接下來(lái)我們學(xué)習(xí)下containerd的使用。
- 在之前的文章 《據(jù)說(shuō)只有高端機(jī)器才配運(yùn)行K8S,網(wǎng)友:1G內(nèi)存的渣渣跑起來(lái)了!》 中我們安裝了K3S,由于K3S中默認(rèn)使用containerd作為容器運(yùn)行時(shí),我們只要安裝好K3S就可以使用它了;
- 其實(shí)只要把我們之前使用的
docker
命令改為crictl
命令即可操作containerd,比如查看所有運(yùn)行中的容器;
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
進(jìn)入容器內(nèi)部執(zhí)行bash命令,這里需要注意的是只能使用容器ID,不支持使用容器名稱;
crictl exec -it a5e34c24be371 /bin/bash
查看容器中應(yīng)用資源占用情況,可以發(fā)現(xiàn)占用非常低。
crictl stats
CONTAINER CPU % MEM DISK INODES 3bb5767a81954 0.54 14.27MB 254B 14 a5e34c24be371 0.00 2.441MB 339B 16
總結(jié)
從Docker轉(zhuǎn)型containerd非常簡(jiǎn)單,基本沒(méi)有什么門檻。只要把之前Docker命令中的 docker
改為 crictl
基本就可以了,果然是同一個(gè)公司出品的東西,用法都一樣。所以不管K8S到底棄用不棄用Docker,對(duì)我們開發(fā)者使用來(lái)說(shuō),基本沒(méi)啥影響!
到此這篇關(guān)于再見(jiàn) Docker如何5分鐘轉(zhuǎn)型 containerd的文章就介紹到這了,更多相關(guān)docker轉(zhuǎn)型containerd內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
私有云存儲(chǔ)Minio Docker鏡像無(wú)法啟動(dòng),提示:Adding local Minio
使用Minio在本地搭建私有云存儲(chǔ)時(shí)出現(xiàn)無(wú)法啟動(dòng),查看日志頻繁輸出“Adding local Minio host to 'mc' configuration...”,然后停止了,本文給大家分享私有云存儲(chǔ)Minio Docker鏡像無(wú)法啟動(dòng),提示:Adding local Minio host to 'mc' configuration,感興趣的朋友一起看看吧2023-11-11Docker搭建自己的本地鏡像倉(cāng)庫(kù)的步驟
今天小編就為大家分享一篇關(guān)于Docker搭建自己的本地鏡像倉(cāng)庫(kù)的步驟,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03docker實(shí)踐之從新鏡像啟動(dòng)容器報(bào)錯(cuò)解決
這篇文章主要介紹了docker實(shí)踐之從新鏡像啟動(dòng)容器報(bào)錯(cuò)解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08docker Compose部署springboot+vue前端端分離
本文主要介紹了docker Compose部署springboot+vue前端端分離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08IDEA 通過(guò)docker插件發(fā)布springboot項(xiàng)目的詳細(xì)教程
這篇文章主要介紹了IDEA 通過(guò)docker插件發(fā)布springboot項(xiàng)目的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Docker使用Bind9實(shí)現(xiàn)域名解析的思路詳解
這篇文章主要介紹了DOCKER使用BIND9實(shí)現(xiàn)域名解析,主要包括刷新服務(wù)修改配置文件信息,實(shí)現(xiàn)思路也很簡(jiǎn)單,本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11