Docker vs VM(Virtual Machine)

一、对比
从下图可以看出,VM是一个运行在宿主机之上的完整操作系统,VM运行自身操作系统会占用较多的CPU、内存、营盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。但Docker目前还不够完善,比如隔离效果不如VM,共享宿主机操作系统的一些基础库等;网络配置功能相对简单,主要以桥接方式为主;查看日志也不够方便灵活。
在这里插入图片描述
Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得Docker技术比虚拟机技术更为轻便、快捷。
作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。

二、Docker相关概念
Docker是CS架构,分为服务端及客户端,主要有两个概念:
1、Docker daemon(服务端):运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互
2、Docker client:Docker命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者Restful API访问远程的Docker daemon
在这里插入图片描述

3、Docker image:镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container(容器),一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。
3、Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会互相影响,保证容器中的程序运行在一个相对安全的环境中。
4、Docker hub/registry:共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry
镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。

发布了11 篇原创文章 · 获赞 0 · 访问量 138

猜你喜欢

转载自blog.csdn.net/weixin_40366765/article/details/104050994