社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  resultsway  »  全部回复
回复总数  1
8 年前
回复了 resultsway 创建的主题 » VM的Guesto和Docker的Basic Image有什么区别?

他们都很不一样。Docker是轻量级的,使用LXC/libcontainer(它依赖于内核名称空间和cGroup),并且没有机器/硬件仿真,比如hypervisor、KVM。它们很重。

Docker和LXC更多用于沙箱、集装箱化和资源隔离。它使用主机操作系统(目前只有Linux内核)的克隆API,为IPC、NS(装载)、网络、PID、UTS等提供名称空间。

内存、I/O、CPU等呢。?这是使用cgroups控制的,在cgroups中,您可以创建具有特定资源(CPU、内存等)规格/限制的组,并将您的进程放在其中。在LXC之上,Docker提供了一个存储后端( http://www.projectatomic.io/docs/filesystems/ )例如,union mount filesystem,您可以在其中添加层,并在不同的装载命名空间之间共享层。

这是一个强大的功能,基本图像通常是只读的,只有当容器修改层中的内容时,它才会将内容写入读写分区(也称为写时复制)。它还提供了许多其他包装,比如注册和图像版本控制。

对于普通的LXC,您需要附带一些rootfs或共享rootfs,当共享时,这些更改会反映在其他容器上。由于这些新增功能,Docker比LXC更受欢迎。LXC在嵌入式环境中很受欢迎,用于围绕暴露于网络和UI等外部实体的进程实现安全性。Docker在云多租户环境中很受欢迎,因为在云多租户环境中,需要一致的生产环境。

普通虚拟机(例如VirtualBox和VMware)使用虚拟机监控程序,相关技术要么具有专用固件,成为第一个操作系统(主机操作系统或来宾操作系统0)的第一层,要么具有在主机操作系统上运行的软件,以向来宾操作系统提供CPU、USB/附件、内存、网络等硬件仿真。VM(截至2015年)在高安全性多租户环境中仍然很流行。

Docker/LXC几乎可以在任何便宜的硬件上运行(只要有更新的内核,内存小于1GB也可以),而普通虚拟机至少需要2GB的内存等,才能用它做任何有意义的事情。但在Windows(截至2014年11月)等操作系统中,主机操作系统上的Docker支持不可用,在Windows、Linux和Mac上可能会运行多种类型的虚拟机。

这是docker/rightscale的一张照片: Here is a pic from rightscale