• 2

請問docker與vm有什麼不同?

原本以為vm已經是相當前衛的虛擬化概念,可是好像有一種
更為前衛的虛擬化概念,docker的概念,其中包含container觀
念,當然現在也不算新技術了,大家現在是否都已經在使用
docker方式的虛擬化技術了呢?
2019-12-13 23:16 發佈
文章關鍵字 docker VM
bmw_m3 wrote:
原本以為vm已經是相(恕刪)

虛擬化 跟 容器 不同的

容器 是在 原來的作業系統中,加入一個獨立運作區,有自己的防火牆設定,還是一樣的作業系統,類似隔離區,有問題不會拖跨整個系統,方便管理 除錯

虛擬化 是整個獨立完全不同 系統
docker Kubernetes k8s這些東西應該有人用好幾年了,大家
覺得好不好用呢?是否有遇過什麼樣的問題.
bmw_m3 wrote:
docker Kubernetes k8s這些東西應該有人用好幾年了,大家
覺得好不好用呢?是否有遇過什麼樣的問題.


好不好用取決於使用者的目的及用途

如果是開發人員,需要設置多種開發環境,docker真的蠻好用的,以我自己為例
我可以在同一台電腦、同一作業系統上,同時跑各種版本的Apache及Nginx
例如:可以同時在localhost:8001跑Apache 2.1、在localhost:8002跑Apache 2.3、在localhost:7000跑Nginx
而且可以隨時關閉、停止、重啟等等。
不用擔心各種版本互相干擾,不用特地為了同時能夠跑各種版本而進行各種繁瑣的調整

至於遇過甚麼樣的問題,我個人覺得最大的問題是必須要花時間重新學習及鍛鍊解決問題的能力
有無可能做到依照負載,彈性啟動與關閉服務數量,
如此應該就不會發生所謂使用人數過多的問題.
bmw_m3 wrote:
有無可能做到依照負載,彈性啟動與關閉服務數量,
如此應該就不會發生所謂使用人數過多的問題.


有可能,但如果只靠一台機器,docker也不是萬靈丹
畢竟硬體和網路頻寬就那樣,還是需要多台機器組成叢集及負載平衡才能從根本上解決超過負載的問題
這種複雜的情況就需要k8s了
每開一台vm 那台vm都需要有自己的OS

docker開的所有容器都只用一個OS

每一個OS都要吃硬體資源的

同樣的硬體資源 用VM能開的服務數量是遠少於docker的容器數量

另外你也可以開VM然後再裝docker然後加一堆你要的containers
看做什麼。不過現在雲端太方便,很多東西都直接丟雲端開發及測試即可。不少hosting的公司,原本都要自己管理不同系統跟軟體版本,以及架設維護硬體; 現在都慢慢將服務移到aws、azure等,更方便,還能節省預算。

回到原題,VM跟container都有共同缺陷,就是若你的開發偏向底層或是memory以及多程序使用的話,vm跟container有時無法正確執行,或是你無法得到正確的結果,最後還是得裝原生的跑。
使用container的方式應該不會無法執行,無法執行通常
都是程式本身或系統設定本身有錯誤,如果設定上面沒
問題,那docker的方式會比純粹vm的方式快上許多,對嗎
?不知道有沒有人實測過兩者的差別.
bmw_m3 wrote:
使用container(恕刪)

錯了,你如果要碰到底層,像是直接去使用/讀取memory,或是cache,就無法。像是利用fr/ff /pp去做side channel attack,有不少工具在vm或container都無法正確呈現行為。

Container非萬能的
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?