docker 和傳統(tǒng)虛擬機(jī)有什么區(qū)別?
共 2746字,需瀏覽 6分鐘
·
2024-09-10 07:33
來(lái)源 | 經(jīng)授權(quán)轉(zhuǎn)自 小白debug(ID:xiaobaidebug)
作者 | 小白
我有一個(gè)程序員朋友,他每年情人節(jié)都要送女朋友一臺(tái)服務(wù)器。
他說(shuō):“誰(shuí)不想在過(guò)節(jié)當(dāng)天收到一臺(tái) 4核8g 的服務(wù)器呢?”
“萬(wàn)一對(duì)方不要,我還能留著自己用?!?給他一次過(guò)節(jié)的機(jī)會(huì),他能把浪漫玩的明明白白。
所以今年情人節(jié),他自己一個(gè)人過(guò)。
太痛了,是那種布洛芬都不知道他哪里痛的痛。
雖然人跑了,但起碼還有服務(wù)器陪著他,但屏幕前依然單身的你呢? 你連服務(wù)器都沒(méi)有。那么問(wèn)題就來(lái)了,你買過(guò)服務(wù)器嗎?看著云廠商各種產(chǎn)品是不是有點(diǎn)懵。
你知道 ecs,vps,docker 容器 是什么嗎?它們有啥區(qū)別呢?
我們今天來(lái)聊聊這個(gè)話題。
物理服務(wù)器是什么?
我的柜子里有一臺(tái)大學(xué)時(shí)候用的廢棄電腦,自帶 cpu、 內(nèi)存等硬件和操作系統(tǒng),根據(jù)一些教程視頻,是可以做成服務(wù)器的。
像這樣一臺(tái)看得見(jiàn)摸得著的機(jī)器,其實(shí)就是云廠商頁(yè)面里提到的物理服務(wù)器或物理機(jī)。不同廠商叫法不同,有的廠商叫它獨(dú)立服務(wù)器。
跟家里電腦不一樣的是,云廠商的機(jī)器性能更好,核數(shù)更高,還有專業(yè)的機(jī)房和空調(diào)伺候著。那既然這樣,是不是就不需要買云廠商的服務(wù)器呢?
糊涂啊,一臺(tái)家用電腦跑起來(lái) 50 瓦,一年下來(lái)電費(fèi)都好幾百,還得花精力伺候著不讓它關(guān)機(jī),還真不如買別人家的劃算。
但問(wèn)題又來(lái)了,云廠商的物理服務(wù)器一般都是核數(shù)較高,很多時(shí)候我們根本不需要這么高配的機(jī)器。怎么辦呢?這一點(diǎn)云廠商當(dāng)然也考慮到了。
vps 和 ecs 是什么
云廠商一般會(huì)將一臺(tái)物理服務(wù)器分割成多個(gè)虛擬機(jī)。它跟我們?cè)?windows 用 VMware, VirtualBox 建的虛擬機(jī)其實(shí)是一回事。每個(gè)虛擬機(jī)都擁有獨(dú)立的操作系統(tǒng)、資源(比如 CPU、內(nèi)存、存儲(chǔ)空間)和公網(wǎng) IP 地址。然后對(duì)外出售,這樣的虛擬機(jī)就是所謂的 VPS(Virtual Private Server,虛擬專用服務(wù)器)。
但傳統(tǒng) VPS 有個(gè)缺點(diǎn),不支持用戶自主升降級(jí),它的資源是預(yù)先分配的,不易動(dòng)態(tài)調(diào)整。舉個(gè)例子,假設(shè)你買了 1c1g 的服務(wù)器,想在頁(yè)面上點(diǎn)點(diǎn)兩下升級(jí)成 2c2g,這在傳統(tǒng) VPS 里是不支持的。如果給 VPS 加入自主升降級(jí)的功能,那它就成了 ECS(Elastic Compute Service,彈性計(jì)算服務(wù))
用戶可以根據(jù)需要隨時(shí)調(diào)整 CPU、內(nèi)存、磁盤和帶寬,主打一個(gè)彈性。我們可以利用 ecs 學(xué)習(xí) linux 命令,部署個(gè)人博客,做私人云盤存儲(chǔ),甚至可以將自己做的游戲部署到 ecs 上邀請(qǐng)朋友來(lái)玩。
docker 容器 是什么
買了 ecs 后,我們一般會(huì)開始部署自己的軟件應(yīng)用。機(jī)器少的時(shí)候手動(dòng)部署問(wèn)題不大,機(jī)器多了后各種問(wèn)題就來(lái)了,其中最明顯的就是,ecs 之間,如果底層操作系統(tǒng)不同,比如有些是 ubuntu,有些是 centos,部署應(yīng)用的時(shí)候就會(huì)有各種環(huán)境問(wèn)題。如果能讓軟件帶著操作系統(tǒng)環(huán)境一起去部署就好了,最簡(jiǎn)單的方案是將軟件和操作系統(tǒng)一起打包成虛擬機(jī)部署在 ecs 中。但這樣就成了在 ECS(也就是虛擬機(jī))中再運(yùn)行一個(gè)完整的虛擬機(jī),太重了。有解法嗎?
有。既然多加一個(gè)操作系統(tǒng)太重,那我就只打包軟件和系統(tǒng)依賴庫(kù)加配置就好了。然后將這部分系統(tǒng)文件掛到 ecs 的操作系統(tǒng)下,利用一個(gè)叫 Namespace 的能力讓它看起來(lái)就像是一個(gè)獨(dú)立操作系統(tǒng)一樣。再利用一個(gè)叫 Cgroup 的能力限制它能使用的計(jì)算資源。這就省掉了一層笨重的操作系統(tǒng),同時(shí)還讓軟件輕松跑在各類操作系統(tǒng)上。這就是我們常說(shuō)的 Docker 容器技術(shù)。
總的來(lái)說(shuō)就是,物理服務(wù)器上跑 ecs,ecs 跑 Docker 容器。多個(gè) Docker 容器共享一個(gè) ecs 實(shí)例 操作系統(tǒng)內(nèi)核。
服務(wù)器怎么選
現(xiàn)在我們了解完他們的區(qū)別了,但服務(wù)器款式那么多,我們?cè)趺催x?如果你是小公司老板或個(gè)體創(chuàng)業(yè)者,想要好一點(diǎn)的物理機(jī)又不想自建機(jī)房,那可以考慮買獨(dú)立服務(wù)器。
如果你是像我一樣的個(gè)人開發(fā)者,或者是學(xué)生,那無(wú)腦沖云服務(wù)器 ecs。有了它,我們可以很方便的在上面部署 docker 容器,平時(shí)做做實(shí)驗(yàn),部署博客,完全夠用了。
這時(shí)候問(wèn)題很多的小明就要問(wèn)了,為什么不選擇大廠商的云服務(wù)器?是用不起嗎?喂喂喂,怎么說(shuō)話呢? 不是大廠云服務(wù)器用不起,而是小廠商的更有性價(jià)比。就以同樣是香港 1 核 1g 的 ecs 為例,小廠商一個(gè)月只要 1 碗紅燒牛肉面。大廠商則要 3 碗。
同樣是 24 核物理服務(wù)器,小廠商千把塊搞定,大廠商就是它的好幾倍。
這省下來(lái)的錢,能買多少份 19 塊 9 5條的南極人內(nèi)褲?
這時(shí)候問(wèn)題很多的小明就又要問(wèn)了,為什么要選香港服務(wù)器?大陸的不是更便宜嗎?
那是因?yàn)橄愀鄯?wù)器沒(méi)有備案的煩惱,而且大陸也能輕松訪問(wèn),有時(shí)候一些熱點(diǎn)技術(shù)一出來(lái),比如時(shí)下火熱的 ai 技術(shù),網(wǎng)站越快上線就能越早拿到搜索引擎排名,備案得等個(gè)把月,這一等就白白錯(cuò)失了很多成為下一個(gè)馬總的機(jī)會(huì)。
最后
好了,如果你覺(jué)得這期文章對(duì)你有幫助,記得轉(zhuǎn)發(fā)給你那不成器的兄弟。最后遺留一個(gè)問(wèn)題, docker 大概是什么你是了解了,那你知道它的內(nèi)部架構(gòu)嗎?如果你感興趣,記得關(guān)注。我們下期見(jiàn)!
秋招已經(jīng)開始啦,大家如果不做好充足準(zhǔn)備的話,秋招很難找到好工作。
送大家一份就業(yè)大禮包,大家可以突擊一下春招,找個(gè)好工作!
