在計算機技術日新月異的今天, Docker 在國內發展的如火如荼。特別是在一線互聯網公司 Docker 的使用是十分普遍的,甚至成為了一些企業面試的加分項,那麼今天我們繼續關於Docker 的精華問答。
1
Q:為什麼用docker?
A:作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。
Docker 在如下幾個方面具有較大的優勢:
更快速的交付和部署
Docker在整個開發週期都可以完美的輔助你實現快速交付。Docker允許開發者在裝有應用和服務本地容器做開發。可以直接集成到可持續開發流程中。
高效的部署和擴容
Docker 容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務器等。 這種兼容性可以讓用戶把一個應用程序從一個平臺直接遷移到另外一個。
Docker的兼容性和輕量特性可以很輕鬆的實現負載的動態管理。你可以快速擴容或方便的下線的你的應用和服務,這種速度趨近實時。
更高的資源利用率
Docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 Docker 容器。容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷儘量小。傳統虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用即可。
更簡單的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。
2
Q:Docker引擎
A:docker引擎是一個c/s結構的應用,主要組件見下圖:
Server是一個常駐進程
REST API 實現了client和server間的交互協議
CLI 實現容器和鏡像的管理,為用戶提供統一的操作界面
3
Q:Docker構架
A:Docker使用C/S架構,Client 通過接口與Server進程通信實現容器的構建,運行和發佈。client和server可以運行在同一臺集群,也可以通過跨主機實現遠程通信。
4
Q:Docker vs VM
A:VM是一個運行在宿主機之上的完整的操作系統,VM運行自身操作系統會佔用較多的CPU、內存、硬盤資源。Docker不同於VM,只包含應用程序以及依賴庫,基於libcontainer運行在宿主機上,並處於一個隔離的環境中,這使得Docker更加輕量高效,啟動容器只需幾秒鐘之內完成。由於Docker輕量、資源佔用少,使得Docker可以輕易的應用到構建標準化的應用中。但Docker目前還不夠完善,比如隔離效果不如VM,共享宿主機操作系統的一些基礎庫等;網絡配置功能相對簡單,主要以橋接方式為主;查看日誌也不夠方便靈活。
Docker 在容器的基礎上,進行了進一步的封裝,從文件系統、網絡互聯到進程隔離等等,極大的簡化了容器的創建和維護。使得 Docker 技術比虛擬機技術更為輕便、快捷。
作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。Docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快得多;Docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 Docker 容器。
5
Q:多個 Docker 容器之間共享數據怎麼辦?
A:如果是同一個宿主,那麼可以綁定同一個數據卷,當然,程序上要處理好併發問題。如果是不同宿主,則可以使用分佈式數據卷驅動,讓分佈在不同宿主的容器都可以訪問到的分佈式存儲的位置。如S3之類。
小夥伴們衝鴨,後臺留言區等著你!
關於Docker ,今天你學到了什麼?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家蒐集更多問題,投稿給我們!風裡雨裡留言區裡等你~
福利
1、掃描添加小編微信,備註“姓名+公司職位”,加入【雲計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號後臺回覆:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
10 種最流行的 Web 挖掘工具 | 程序員硬核評測
《復聯4》| 生活需要漫威這塊糖
如何向 6 歲的孩子解釋編程?這個解釋厲害了
“踏實工作 7 年,辭職時老闆頭都不抬”
60倍回報! AI工程師用OpenAI創建了一個比特幣自動交易工具! 這裡是詳細做法 | 技術頭條
賭5毛錢,你解不出這道Google面試題
真香,朕在看了!