<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

請問Docker和傳統虛擬機有什么區別呢?

小林coding ? 來源:小白debug ? 2024-03-29 15:54 ? 次閱讀

我有一個程序員朋友,他每年情人節都要送女朋友一臺服務器。

他說:“誰不想在過節當天收到一臺4核8g的服務器呢?”

“萬一對方不要,我還能留著自己用?!?給他一次過節的機會,他能把浪漫玩的明明白白。

所以今年情人節,他自己一個人過。

太痛了,是那種布洛芬都不知道他哪里痛的痛。

雖然人跑了,但起碼還有服務器陪著他,但屏幕前依然單身的你呢?你連服務器都沒有。那么問題就來了,你買過服務器嗎?看著云廠商各種產品是不是有點懵。

你知道 ecs,vps,docker 容器 是什么嗎?它們有啥區別呢?

我們今天來聊聊這個話題。

物理服務器是什么?

我的柜子里有一臺大學時候用的廢棄電腦,自帶 cpu、 內存等硬件操作系統,根據一些教程視頻,是可以做成服務器的。

像這樣一臺看得見摸得著的機器,其實就是云廠商頁面里提到的物理服務器物理機。不同廠商叫法不同,有的廠商叫它獨立服務器。

跟家里電腦不一樣的是,云廠商的機器性能更好,核數更高,還有專業的機房和空調伺候著。那既然這樣,是不是就不需要買云廠商的服務器呢?

糊涂啊,一臺家用電腦跑起來 50 瓦,一年下來電費都好幾百,還得花精力伺候著不讓它關機,還真不如買別人家的劃算。

但問題又來了,云廠商的物理服務器一般都是核數較高,很多時候我們根本不需要這么高配的機器。怎么辦呢?這一點云廠商當然也考慮到了。

vps 和 ecs 是什么

云廠商一般會將一臺物理服務器分割成多個虛擬機。它跟我們在 windows 用VMware,VirtualBox建的虛擬機其實是一回事。每個虛擬機都擁有獨立的操作系統、資源(比如 CPU、內存、存儲空間)和公網 IP 地址。然后對外出售,這樣的虛擬機就是所謂的VPS(Virtual Private Server,虛擬專用服務器)。

c1a089e0-ed9b-11ee-a297-92fbcf53809c.jpg

VPS

但傳統 VPS 有個缺點,不支持用戶自主升降級,它的資源是預先分配的,不易動態調整。舉個例子,假設你買了1c1g的服務器,想在頁面上點點兩下升級成2c2g,這在傳統 VPS 里是不支持的。如果給 VPS 加入自主升降級的功能,那它就成了ECS(Elastic Compute Service,彈性計算服務)

c1b4671c-ed9b-11ee-a297-92fbcf53809c.jpg

ECS支持自主升降級

用戶可以根據需要隨時調整 CPU、內存、磁盤和帶寬,主打一個彈性。我們可以利用 ecs 學習 linux 命令,部署個人博客,做私人云盤存儲,甚至可以將自己做的游戲部署到 ecs 上邀請朋友來玩。

c1c4f6d6-ed9b-11ee-a297-92fbcf53809c.jpg

ecs的用途

docker 容器 是什么

買了 ecs 后,我們一般會開始部署自己的軟件應用。機器少的時候手動部署問題不大,機器多了后各種問題就來了,其中最明顯的就是,ecs 之間,如果底層操作系統不同,比如有些是ubuntu,有些是centos,部署應用的時候就會有各種環境問題。如果能讓軟件帶著操作系統環境一起去部署就好了,最簡單的方案是將軟件和操作系統一起打包成虛擬機部署在ecs中。但這樣就成了在 ECS(也就是虛擬機)中再運行一個完整的虛擬機,太重了。有解法嗎?

c1c8edc2-ed9b-11ee-a297-92fbcf53809c.jpg

虛擬機上再運行一個虛擬機

有。既然多加一個操作系統太重,那我就只打包軟件和系統依賴庫加配置就好了。然后將這部分系統文件掛到 ecs 的操作系統下,利用一個叫Namespace的能力讓它看起來就像是一個獨立操作系統一樣。再利用一個叫Cgroup的能力限制它能使用的計算資源。這就省掉了一層笨重的操作系統,同時還讓軟件輕松跑在各類操作系統上。這就是我們常說的Docker 容器技術。

c1cc8662-ed9b-11ee-a297-92fbcf53809c.jpg

Docker容器是什么

總的來說就是,物理服務器上跑 ecs,ecs 跑 Docker 容器。多個 Docker 容器共享一個 ecs 實例 操作系統內核。

c1d6b3bc-ed9b-11ee-a297-92fbcf53809c.jpg

ecs和docker容器的關系

服務器怎么選

現在我們了解完他們的區別了,但服務器款式那么多,我們怎么選?如果你是小公司老板或個體創業者,想要好一點的物理機又不想自建機房,那可以考慮買獨立服務器。

如果你是像我一樣的個人開發者,或者是學生,那無腦沖云服務器 ecs。有了它,我們可以很方便的在上面部署 docker 容器,平時做做實驗,部署博客,完全夠用了。

c1e9b14c-ed9b-11ee-a297-92fbcf53809c.jpg

容器里跑應用

這時候問題很多的小明就要問了,為什么不選擇大廠商的云服務器?是用不起嗎?喂喂喂,怎么說話呢?不是大廠云服務器用不起,而是小廠商的更有性價比。就以同樣是香港 1 核 1g 的 ecs 為例,小廠商一個月只要 1 碗紅燒牛肉面。大廠商則要 3 碗。

同樣是 24 核物理服務器,小廠商千把塊搞定,大廠商就是它的好幾倍。

這省下來的錢,能買多少份19 塊 95條的南極人內褲?

這時候問題很多的小明就又要問了,為什么要選香港服務器?大陸的不是更便宜嗎?

那是因為香港服務器沒有備案的煩惱,而且大陸也能輕松訪問,有時候一些熱點技術一出來,比如時下火熱的 ai 技術,網站越快上線就能越早拿到搜索引擎排名,備案得等個把月,這一等就白白錯失了很多成為下一個馬總的機會。

最后

好了,如果你覺得這期文章對你有幫助,記得轉發給你那不成器的兄弟。

最后遺留一個問題, docker 大概是什么你是了解了,那你知道它的內部架構嗎?



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6351

    瀏覽量

    122061
  • 虛擬機
    +關注

    關注

    1

    文章

    866

    瀏覽量

    27486
  • ECS
    ECS
    +關注

    關注

    0

    文章

    46

    瀏覽量

    20006
  • VMware
    +關注

    關注

    1

    文章

    285

    瀏覽量

    21369
  • Docker
    +關注

    關注

    0

    文章

    439

    瀏覽量

    11640

原文標題:面試官:Docker和傳統虛擬機有什么區別?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問QTE可以同幾種JAVA虛擬機集成

    《嵌入式linux應用開發完全手冊》第500頁中有講:“QTE可以同幾種JAVA虛擬機集成。JAVA程序可以基于QTE的工作平臺上運行,提供同源程序相同的效果”我就是想請問,是否那個版本的QTE是
    發表于 05-24 05:45

    請問如何安裝虛擬機共享文件?

    1、如何安裝虛擬機共享文件?安裝虛擬機共享文件除了有此作用外,還有其他什么用途?
    發表于 07-04 05:56

    虛擬機里的OS怎么和硬件通信

    Ring3但是做了虛擬化后,OS和硬件之間就多了一層VMM,虛擬機里的OS怎么和硬件通信?并且多個虛擬機里的OS怎么協調使用硬件資源?1998年VMware首次解決了這一問題,使用二
    發表于 07-30 06:27

    Android和嵌入式Lnux系統什么區別和聯系

    運行Android系統。 其區別就是Android系統和Linux系統的區別。Android系統的底層是Linux的內核,上面跑的是Android的java虛擬機。Android系統的UI...
    發表于 11-08 06:09

    請問OK3399怎么不提供虛擬機鏡像編譯環境?

    Docker編譯環境真難用,怎么不提供虛擬機鏡像編譯環境?
    發表于 12-30 07:34

    Docker監控實戰分析

    的「輕」也只是相對于傳統虛擬機而已。傳統虛擬機Docker 的對比如圖: 從圖中可以看出 Dock
    發表于 10-13 17:05 ?2次下載
    <b class='flag-5'>Docker</b>監控實戰分析

    什么是 Docker?Docker傳統虛擬機什么區別?

    Docker 容器將軟件以及它運行安裝所需的一切文件(代碼、運行時、系統工具、系統庫)打包到一起,這就保證了不管是在什么樣的運行環境,總是能以相同的方式運行。就好像 Java 虛擬機一樣,“一次編寫
    的頭像 發表于 03-16 14:28 ?5.1w次閱讀
    什么是 <b class='flag-5'>Docker</b>?<b class='flag-5'>Docker</b>與<b class='flag-5'>傳統</b>的<b class='flag-5'>虛擬機</b>有<b class='flag-5'>什么區別</b>?

    什么是虛擬化?什么是Docker ?Docker容器與虛擬機區別

    Docker是一個虛擬環境容器,可以將你的可執行文件、配置文件及一切其他你需要的文件一并打包到這個容器中,并發布和應用到任意平臺。比如,你在本地用Python開發了一個網站后臺,開發測試完成后
    發表于 05-03 14:18 ?2.4w次閱讀

    Docker是什么它和虛擬機到底有什么區別

    Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙盒機制,相互之間不會有
    的頭像 發表于 12-29 11:37 ?3705次閱讀

    Docker容器與虛擬機區別

    我曾經將Docker容器視為輕量級,精簡的虛擬機。 進行這種比較是有道理的,因為至少在Docker的最初市場中,總是將其與虛擬機進行比較-例如,"
    的頭像 發表于 05-03 17:17 ?7452次閱讀

    容器、Docker、虛擬機區別

    移植的系統。它不僅簡化了打包應用的流程,也簡化了打包應用的庫和依賴,甚至整個操作系統的文件系統能被打包成一個簡單的可移植的包,這個包可以被用來在任何其他運行Docker的機器上使用。 容器和虛擬機具有相似的資源隔離和分配方式,容器虛擬
    的頭像 發表于 11-05 09:41 ?2728次閱讀

    如何區分虛擬機Docker

    首先,大家需要明確一點,Docker容器不是虛擬機。 2014年,當我第一次接觸Docker的時候,我把它比做一種輕量級的虛擬機。這樣做無可厚非,因為
    的頭像 發表于 02-14 11:36 ?846次閱讀
    如何區分<b class='flag-5'>虛擬機</b>與<b class='flag-5'>Docker</b>

    XR虛擬拍攝和傳統綠幕拍攝有什么區別

    XR虛擬拍攝和傳統綠幕拍攝有什么區別 隨著科技的不斷發展,電影和電視劇的制作技術也在不斷升級。XR虛擬拍攝和傳統綠幕拍攝是兩種不同的拍攝技術
    的頭像 發表于 06-25 16:57 ?421次閱讀

    Docker虛擬機區別

    Docker虛擬機是兩種不同的虛擬化技術,它們在實現方式、資源消耗、運行性能等方面存在許多差異。本文將會詳細介紹它們的區別。 一、實現方式 1.1
    的頭像 發表于 11-23 09:37 ?3399次閱讀

    docker虛擬機有何區別?

    整個Docker由客戶端、服務端和倉庫構成
    的頭像 發表于 12-06 10:08 ?318次閱讀
    <b class='flag-5'>docker</b>和<b class='flag-5'>虛擬機</b>有何<b class='flag-5'>區別</b>?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>