3 回答

回首憶惘然
TA貢獻1847條經驗 獲得超11個贊
Docker并不是全能的,設計之初也不是KVM之類虛擬化手段的替代品,簡單總結幾點:
1.Docker是基于Linux 64bit的,無法在32bit的linux/Windows/unix環境下使用
2.LXC是基于cgroup等linux kernel功能的,因此container的guest系統只能是linux base的
3.隔離性相比KVM之類的虛擬化方案還是有些欠缺,所有container公用一部分的運行庫
4.網絡管理相對簡單,主要是基于namespace隔離
5.cgroup的cpu和cpuset提供的cpu功能相比KVM的等虛擬化方案相比難以度量(所以dotcloud主要是按內存收費)
6.docker對disk的管理比較有限
7.container隨著用戶進程的停止而銷毀,container中的log等用戶數據不便收集
針對1-2,有windows base應用的需求的基本可以pass了; 3-5主要是看用戶的需求,到底是需要一個container還是一個VM, 同時也決定了docker作為 IaaS 不太可行。
針對6,7雖然是docker本身不支持的功能,但是可以通過其他手段解決(disk quota, mount --bind)??傊x用container還是vm, 就是在隔離性和資源復用性上做權衡
添加回答
舉報
0/150
提交
取消