日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

观点 | 容器内应该运行什么?

發(fā)布時(shí)間:2025/3/20 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 观点 | 容器内应该运行什么? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文講的是觀點(diǎn) | 容器內(nèi)應(yīng)該運(yùn)行什么,【編者的話(huà)】本文通過(guò)從目前人們?nèi)绾问褂萌萜鞯慕嵌瘸霭l(fā),分析探討了人們到底應(yīng)該在容器中運(yùn)行什么。
今晚,我的一個(gè)朋友問(wèn)我對(duì)單VS多進(jìn)程的容器怎么看。我很高興他這樣問(wèn)。在容器界這是一個(gè)熱門(mén)的話(huà)題,但我沒(méi)有過(guò)多的回答過(guò)。直到上個(gè)月,我不知道對(duì)此事發(fā)展的意見(jiàn)是否有了充分的理解。

有關(guān)多進(jìn)程最好的文章是http://phusion.github.io/baseimage-docker/。解釋一下,當(dāng)你在容器內(nèi)運(yùn)行單進(jìn)程的軟件其實(shí)它是運(yùn)行在分裂的上下文上。

你剛剛建立了一個(gè)容器,它包含了最小的操作系統(tǒng),而且只能運(yùn)行你的應(yīng)用程序。但容器內(nèi)的操作系統(tǒng)配置不正確。一個(gè)合適的Unix系統(tǒng)應(yīng)該運(yùn)行各種重要的系統(tǒng)服務(wù)。你的這個(gè)容器沒(méi)有運(yùn)行它們而僅僅運(yùn)行你的應(yīng)用程序。 當(dāng)我讀到這,我最初的直覺(jué)反應(yīng)是消極的。究其原因是哲學(xué)。我的容器不應(yīng)該包含一個(gè)操作系統(tǒng)。我用容器來(lái)隔離一個(gè)服務(wù)與系統(tǒng)的其他進(jìn)程服務(wù),并確保它們不會(huì)白白地創(chuàng)建混亂。我的想法是,我的系統(tǒng)中已經(jīng)有一個(gè)init進(jìn)程、SSHD和syslogd在運(yùn)行。我想:“如果我需要的cron運(yùn)行在我的容器,那我已經(jīng)完全被打亂了。”用一個(gè)容器來(lái)代替虛擬機(jī)的整個(gè)要點(diǎn)是不用專(zhuān)門(mén)地運(yùn)行整個(gè)操作系統(tǒng)。我是按自己的使用情況來(lái)閱讀這篇文章的。

但后來(lái)我完成了這篇文章,復(fù)查之后,我不得不重新審視自己。我意識(shí)到這個(gè)是錯(cuò)誤的原因。事實(shí)上復(fù)雜得多。

以下是一些有關(guān)人們會(huì)在容器中運(yùn)行哪些軟件的調(diào)查:
  • 需要這些服務(wù)
  • 純粹的開(kāi)箱即用(OOTB),從未考慮為容器而設(shè)計(jì)(需要這些服務(wù))
  • 定制容器
  • 可定制,但沒(méi)有為容器而設(shè)計(jì)
  • 專(zhuān)門(mén)為了使用容器而編寫(xiě)
  • 沒(méi)有這些依賴(lài)而設(shè)計(jì)的

這些是人們?cè)谌萜鲀?nèi)運(yùn)行軟件的整個(gè)范圍。這樣做并沒(méi)有對(duì)與錯(cuò),也并不是非黑即白。重要的是該軟件是如何工作的,只要都能夠支持它、了解其效率的權(quán)衡以及了解你創(chuàng)建的系統(tǒng)中故障模式(譯注:重要的是知道如何debug)。

有了這點(diǎn)想法后我的整個(gè)態(tài)度改變了。那篇文章是偉大的,因?yàn)樗蛉藗冎v解了常見(jiàn)的Unix系統(tǒng)組件。也許有些人會(huì)感到沮喪,但大多數(shù)人并不了解這些工具以及它們是如何結(jié)合在一起的。他們的基本鏡像做的相當(dāng)不錯(cuò)。我用了幾次,但我的使用情況需要我避免使用容量大的鏡像。

如果您想了解我是如何使用Docker……

《Docker in Action》中,我試著用一些諸如Busybox的工具,因?yàn)槲也幌M藗儾坏貌灰却螺d一整天。

在生產(chǎn)環(huán)境中,我構(gòu)建并使用明確、穩(wěn)固以及簡(jiǎn)約的容器。我開(kāi)始使用短小的鏡像并清理掉我不需要的東西。我終止了SUID二進(jìn)制。清楚我的服務(wù)(非root)應(yīng)該運(yùn)行在哪個(gè)UID/GID上。知道我的容器在運(yùn)行時(shí)需要什么樣的能力并盡可能地限制他們。我使用volumes來(lái)代替stdout/stderr。有時(shí)我為了提交配置使用鏡像與volumes。我選擇資源限制。我使用init進(jìn)程。我用的其他的容器服務(wù)做健康監(jiān)測(cè)、服務(wù)登記以及日志轉(zhuǎn)發(fā)。我一次性提交容器到負(fù)載均衡群集節(jié)點(diǎn)并調(diào)整連接volume的網(wǎng)絡(luò)堆棧。我創(chuàng)建廉價(jià)的部署與DNS搜索域連接起來(lái)。

如果我需要使用shell,我會(huì)CSSH到集群節(jié)點(diǎn)中運(yùn)行的目標(biāo)容器內(nèi)。我會(huì)拉取toolbox鏡像來(lái)創(chuàng)造一個(gè)新的附有合適的volumes和網(wǎng)絡(luò)接口的容器。有任何提升的權(quán)限時(shí),我只運(yùn)行短暫的容器。

如果你想在容器內(nèi)運(yùn)行一個(gè)完整的Linux操作系統(tǒng),基本上你可以使用Docker來(lái)做到這一點(diǎn)。你也可以運(yùn)行單個(gè)NASM程序并創(chuàng)建最小鏡像。請(qǐng)記住,這些都是運(yùn)行在已正確配置的系統(tǒng)上。在適當(dāng)?shù)臅r(shí)候使用該系統(tǒng)。

與其擔(dān)心別人讓你應(yīng)該這樣做,還不如專(zhuān)注于你需要拿它做什么。做好這一點(diǎn)。如果你需要迭代并添加一些功能也是可以的。

Docker帶來(lái)了希望以及簡(jiǎn)化了一些Linux最難理解的工作。在你嘗試相當(dāng)多的docker run my/image命令的同時(shí),如果你花時(shí)間研究這些選項(xiàng),你可以收獲更多。這樣做,你會(huì)更深入的理解操作系統(tǒng)以及幫助您如何具體地使用它。

我提起這些因?yàn)樵谀阋圆煌绞绞褂脝我籚S多進(jìn)程的容器會(huì)有某些特性。例如,如果你充分利用Linux的功能授權(quán),想要給你的wirelog錄NET_RAW能力,你不會(huì)想讓它作為面向公眾的Web應(yīng)用程序來(lái)運(yùn)行在同一個(gè)容器中。另一個(gè)例子是,如果你使用的AppArmor,你不會(huì)想在Web應(yīng)用程序和數(shù)據(jù)庫(kù)中都使用相同的配置文件。但如果是在同一容器中,那么在該容器的配置文件也會(huì)應(yīng)用該容器內(nèi)的兩個(gè)應(yīng)用程序。更糟的是如果你使用SELinux,你很難使這兩個(gè)應(yīng)用程序具有相同標(biāo)簽。

我是個(gè)現(xiàn)實(shí)主義者。我知道有些人只是想要一個(gè)基本能工作的鏡像至于其他的一概忘掉。老實(shí)說(shuō),我認(rèn)為這很好。phusion/baseimage-docker就不錯(cuò)。只是有一點(diǎn)要記住一定要用非root用戶(hù)來(lái)運(yùn)行容器。

我已經(jīng)在起草《Docker in Action》的第6章(譯注:目前在MEAP已有電子版)。如果你想了解如何使用Docker來(lái)隔離軟件,你應(yīng)該閱讀這一章節(jié)。它涵蓋了用戶(hù)管理、內(nèi)存共享、設(shè)備訪(fǎng)問(wèn)、資源限制、Linux的功能授權(quán)而且還涉及到如AppArmor和SELinux等其他工具。別讓主題嚇到你。我盡我所能來(lái)融會(huì)貫通這些復(fù)雜的主題并加以“你所需要知道的”和“如何使用Docker”之類(lèi)的方式呈現(xiàn)給您。

原文鏈接:Opinion: What Should I Run in My Containers??(翻譯:田浩浩?審校:魏小紅)

===========================

譯者介紹
田浩浩,USYD研究生,專(zhuān)注Docker學(xué)習(xí)研究 - <htia6761@uni.sydney.edu.au>。

原文發(fā)布時(shí)間為:2015-10-14? 本文作者:田浩浩? 本文來(lái)自云棲社區(qū)合作伙伴DockerOne,了解相關(guān)信息可以關(guān)注DockerOne。 原文標(biāo)題:觀點(diǎn) | 容器內(nèi)應(yīng)該運(yùn)行什么?

總結(jié)

以上是生活随笔為你收集整理的观点 | 容器内应该运行什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。