自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

云計(jì)算
很多人可能遇到過(guò)開(kāi)機(jī)重啟時(shí),由于Docker守護(hù)程序在占用多核CPU使用100%C使用的情況,導(dǎo)致所有容器都無(wú)法啟動(dòng),服務(wù)都不能用的情況。

 

緣起:

很多人可能遇到過(guò)開(kāi)機(jī)重啟時(shí),由于Docker守護(hù)程序在占用多核CPU使用100%C使用的情況,導(dǎo)致所有容器都無(wú)法啟動(dòng),服務(wù)都不能用的情況。很悲催的是這事兒蟲(chóng)蟲(chóng)也遇到了,之前文章中蟲(chóng)蟲(chóng)介紹過(guò)利用Docker重構(gòu)WP博客的新架構(gòu)。由于VPS機(jī)器不是很穩(wěn)定,時(shí)常會(huì)重啟,重啟時(shí)候就會(huì)遇到這個(gè)事情,VPS負(fù)載很高,容器都沒(méi)有起來(lái),網(wǎng)站就無(wú)法訪問(wèn)了。這時(shí)候只能殺掉所有容器并重啟守護(hù)進(jìn)程,才能恢復(fù)。經(jīng)過(guò)了解該問(wèn)題是由于Docker守護(hù)進(jìn)程引起,而且Docker守護(hù)進(jìn)程是以root特權(quán)權(quán)限啟動(dòng)的,是一個(gè)安全問(wèn)題,那么有什么方法解決呢?

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

Podman,Skopeo和Buildah

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

Podman

 

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

 

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

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

Buildah

Buildah用來(lái)構(gòu)建OCI圖像。雖然Podman也可以用戶構(gòu)建Docker鏡像,但是構(gòu)建速度超慢,并且默認(rèn)情況下使用vfs存儲(chǔ)驅(qū)動(dòng)程序會(huì)耗盡大量磁盤(pán)空間。 buildah bud(使用Dockerfile構(gòu)建)則會(huì)非???,并使用覆蓋存儲(chǔ)驅(qū)動(dòng)程序。

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

Buildah專注于構(gòu)建OCI鏡像。 Buildah的命令復(fù)制了Dockerfile中的所有命令??梢允褂肈ockerfiles構(gòu)建鏡像,并且不需要任何root權(quán)限。 Buildah的最終目標(biāo)是提供更低級(jí)別的coreutils界面來(lái)構(gòu)建圖像。Buildah也支持非Dockerfiles構(gòu)建鏡像,可以允許將其他腳本語(yǔ)言集成到構(gòu)建過(guò)程中。 Buildah遵循一個(gè)簡(jiǎn)單的fork-exec模型,不以守護(hù)進(jìn)程運(yùn)行,但它基于golang中的綜合API,可以存儲(chǔ)到其他工具中。

Skopeo

Skopeo是一個(gè)工具,允許我們通過(guò)推,拉和復(fù)制鏡像來(lái)處理Docker和OC鏡像。

[[274424]]

Podman和Buildah對(duì)比

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

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

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

容器遷移

安裝

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

  1. Fedora, CentOS:sudo yum -y install podman  
  2. Arch & Manjaro Linux: sudo pacman -S podman 

Ubuntu安裝:

  1. sudo apt-get update -qq 
  2. sudo apt-get install -qq -y software-properties-common uidmap 
  3. sudo add-apt-repository -y ppa:projectatomic/ppa 
  4. sudo apt-get update -qq 
  5. sudo apt-get -qq -y install podman 

遷移步驟

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

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

  1. sysdig | grep -w docker 

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

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

  1. sudo:yum remove docker 

或者

  1. 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ū)е碌膯?dòng)和安全問(wèn)題。使用新架構(gòu)后除了"沒(méi)有守護(hù)進(jìn)程"和"不需要sudo訪問(wèn)"之外,沒(méi)有發(fā)現(xiàn)很多不同之處。構(gòu)建的容器都位于用戶目錄下(~/.local/containers中)而不是全局的(在/var/lib/docker中),即面向用戶而不是面向守護(hù)進(jìn)程。與Docker相比,podman pull會(huì)并行下載獲取所有層。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2019-09-26 15:30:34

DockerLinux開(kāi)源

2013-07-27 21:28:44

2025-01-03 09:24:10

模型架構(gòu)論文

2013-06-27 11:21:17

2015-10-19 17:15:33

網(wǎng)絡(luò)架構(gòu)/華三

2011-01-11 10:13:06

2015-09-10 09:39:01

容器技術(shù)Docker

2020-09-27 17:27:58

邊緣計(jì)算云計(jì)算技術(shù)

2021-11-01 10:41:59

DockerEarthlyLinux

2012-07-18 09:21:54

iPhone觸摸屏

2020-09-16 10:28:54

邊緣計(jì)算云計(jì)算數(shù)據(jù)中心

2012-03-24 20:49:49

iPhone

2011-08-30 10:02:31

2013-09-09 16:28:36

2016-01-26 11:58:12

2018-05-17 11:31:45

大數(shù)據(jù)IOTA架構(gòu)數(shù)據(jù)架構(gòu)

2018-09-27 18:47:45

AIOpsDevOps

2018-09-25 07:00:50

2011-06-30 11:02:22

2012-12-12 10:29:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)