再見Docker劣光!使用Podman、Skopeo和Buildah下一代容器新架構(gòu)

再見Docker糟把!使用Podman绢涡、Skopeo和Buildah下一代容器新架構(gòu)

緣起:

很多人可能遇到過開機(jī)重啟時,由于Docker守護(hù)程序在占用多核CPU使用100%C使用的情況遣疯,導(dǎo)致所有容器都無法啟動雄可,服務(wù)都不能用的情況。很悲催的是這事兒蟲蟲也遇到了缠犀,之前文章中蟲蟲介紹過利用Docker重構(gòu)WP博客的新架構(gòu)数苫。由于VPS機(jī)器不是很穩(wěn)定,時常會重啟辨液,重啟時候就會遇到這個事情虐急,VPS負(fù)載很高,容器都沒有起來滔迈,網(wǎng)站就無法訪問了止吁。這時候只能殺掉所有容器并重啟守護(hù)進(jìn)程,才能恢復(fù)亡鼠。經(jīng)過了解該問題是由于Docker守護(hù)進(jìn)程引起赏殃,而且Docker守護(hù)進(jìn)程是以root特權(quán)權(quán)限啟動的,是一個安全問題间涵,那么有什么方法解決呢仁热?

為什么Docker需要一個守護(hù)進(jìn)程呢?

Podman,Skopeo和Buildah

這三個工具都是符合OCI計劃下的工具(github/containers)抗蠢。主要是由RedHat推動的举哟,他們配合可以完成Docker所有的功能,而且不需要守護(hù)程序或訪問有root權(quán)限的組迅矛,更加安全可靠妨猩,是下一代容器容器工具。

Podman

再見Docker秽褒!使用Podman壶硅、Skopeo和Buildah下一代容器新架構(gòu)

Podman可以替換Docker中了大多數(shù)子命令(RUN,PUSH销斟,PULL等)庐椒。Podman不需要守護(hù)進(jìn)程,而是使用用戶命名空間來模擬容器中的root蚂踊,無需連接到具有root權(quán)限的套接字保證容器的體系安全约谈。

Podman專注于維護(hù)和修改OCI鏡像的所有命令和功能,例如拉動和標(biāo)記犁钟。它還允許我們創(chuàng)建棱诱,運(yùn)行和維護(hù)從這些鏡像創(chuàng)建的容器。

Buildah

Buildah用來構(gòu)建OCI鏡像涝动。雖然Podman也可以用戶構(gòu)建Docker鏡像迈勋,但是構(gòu)建速度超慢,并且默認(rèn)情況下使用vfs存儲驅(qū)動程序會耗盡大量磁盤空間捧存。 buildah bud(使用Dockerfile構(gòu)建)則會非撤喙快,并使用覆蓋存儲驅(qū)動程序昔穴。

再見Docker镰官!使用Podman、Skopeo和Buildah下一代容器新架構(gòu)

Buildah專注于構(gòu)建OCI鏡像吗货。 Buildah的命令復(fù)制了Dockerfile中的所有命令泳唠。可以使用Dockerfiles構(gòu)建鏡像宙搬,并且不需要任何root權(quán)限笨腥。 Buildah的最終目標(biāo)是提供更低級別的coreutils界面來構(gòu)建鏡像。Buildah也支持非Dockerfiles構(gòu)建鏡像勇垛,可以允許將其他腳本語言集成到構(gòu)建過程中脖母。 Buildah遵循一個簡單的fork-exec模型,不以守護(hù)進(jìn)程運(yùn)行闲孤,但它基于golang中的綜合API谆级,可以存儲到其他工具中。

Skopeo

Skopeo是一個工具,允許我們通過推肥照,拉和復(fù)制鏡像來處理Docker和OC鏡像脚仔。

再見Docker!使用Podman舆绎、Skopeo和Buildah下一代容器新架構(gòu)

Podman和Buildah對比

Buildah構(gòu)建容器鲤脏,Podman運(yùn)行容器,Skopeo傳輸容器鏡像吕朵。這些都是由Github容器組織維護(hù)的開源工具(github/containers)猎醇。這些工具都不需要運(yùn)行守護(hù)進(jìn)程,并且大多數(shù)情況下也不需要root訪問權(quán)限边锁。

Podman和Buildah之間的一個主要區(qū)別是他們的容器概念姑食。 Podman允許用戶創(chuàng)建"傳統(tǒng)容器"。雖然Buildah容器實際上只是為了允許將內(nèi)容添加回容器鏡像而創(chuàng)建的茅坛。一種簡單方法是buildah run命令模擬Dockerfile中的RUN命令,而podman run命令模擬功能中的docker run命令则拷。

簡而言之贡蓖,Buildah是創(chuàng)建OCI鏡像的有效方式,而Podman允許我們使用熟悉的容器cli命令在生產(chǎn)環(huán)境中管理和維護(hù)這些鏡像和容器煌茬。

容器遷移

安裝

基本上各大發(fā)行版都提供了二進(jìn)制安裝包斥铺, 使用系統(tǒng)包管理就可以安裝:

Fedora, CentOS:sudo yum -y install podman

Arch & Manjaro Linux: sudo pacman -S podman

Ubuntu安裝:

sudo apt-get update -qq
sudo apt-get install -qq -y software-properties-common uidmap
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt-get update -qq
sudo apt-get -qq -y install podman

遷移步驟

首先,用podman替換了cron和CI作業(yè)中的所有docker實例坛善。

完成后第一步后使用sysdig來捕獲對docker的引用晾蜘,看看是否還有其他東西在調(diào)用docker:

sysdig | grep -w docker

如果您對性能敏感,這可能會大大降低系統(tǒng)速度眠屎。

現(xiàn)在就可以刪除docker了:

sudo:yum remove docker

或者

apt remove -y docker-ce

清理配置文件:

刪除/etc/apt/或者/etc/yum.repos.d/中指向Docker的源
刪除/etc/docker/剔交,/etc/default/docker和/var/lib/ docker中的任何遺留文件
刪除docker組:
delgroup docker*

總結(jié)

使用Podman,Skopeo和Buildah的新一代容器架構(gòu)后改衩,可以解決由于docker守護(hù)程序?qū)е碌膯雍桶踩珕栴}岖常。使用新架構(gòu)后除了"沒有守護(hù)進(jìn)程"和"不需要sudo訪問"之外,沒有發(fā)現(xiàn)很多不同之處葫督。構(gòu)建的容器都位于用戶目錄下(~/.local/containers中)而不是全局的(在/var/lib/docker中)竭鞍,即面向用戶而不是面向守護(hù)進(jìn)程。與Docker相比橄镜,podman pull會并行下載獲取所有層偎快。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洽胶,隨后出現(xiàn)的幾起案子晒夹,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惋戏,死亡現(xiàn)場離奇詭異领追,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)响逢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門绒窑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舔亭,你說我怎么就攤上這事些膨。” “怎么了钦铺?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵订雾,是天一觀的道長。 經(jīng)常有香客問我矛洞,道長洼哎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任沼本,我火速辦了婚禮噩峦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抽兆。我一直安慰自己识补,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布辫红。 她就那樣靜靜地躺著凭涂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贴妻。 梳的紋絲不亂的頭發(fā)上切油,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天,我揣著相機(jī)與錄音揍瑟,去河邊找鬼白翻。 笑死,一個胖子當(dāng)著我的面吹牛绢片,可吹牛的內(nèi)容都是我干的滤馍。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼底循,長吁一口氣:“原來是場噩夢啊……” “哼巢株!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起熙涤,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤阁苞,失蹤者是張志新(化名)和其女友劉穎困檩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體那槽,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡悼沿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骚灸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糟趾。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖甚牲,靈堂內(nèi)的尸體忽然破棺而出义郑,到底是詐尸還是另有隱情,我是刑警寧澤丈钙,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布非驮,位于F島的核電站,受9級特大地震影響雏赦,放射性物質(zhì)發(fā)生泄漏劫笙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一星岗、第九天 我趴在偏房一處隱蔽的房頂上張望邀摆。 院中可真熱鬧,春花似錦伍茄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汉额,卻和暖如春曹仗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蠕搜。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工怎茫, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妓灌。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓轨蛤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虫埂。 傳聞我的和親對象是個殘疾皇子祥山,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容