引言
相信很多技术同学在开发时都会使用虚拟机,配置好一个开发环境,以后使用时只需要启动虚拟机就好了。但虚拟机动辄几个GB,大一点儿的甚至几百个GB,而且只要其中任意的虚拟机文件损坏,整个虚拟机就没办法启动了。你可能说应该经常备份,这的确是个好主意。但有没有更好的办法呢?今天钢哥就带着大家了解一下Docker(容器),看看它是否比传统的虚拟机更适合我们。
什么是容器?
顾名思义,容器就是用来装东西的。我们平时喝水的杯子就是容器,只不过杯子这个“容器”是用来装水的,而我们这里的容器装的是应用程序。
容器有什么特点?
- 自包含性:它打包了应用程序的所有依赖,可以直接运行;
- 可移植性:容器可以在几乎任何地方以相同的方式运行,这就确保了在开发、测试和生产环境都可以拥有完全一样的运行环境;
- 相互隔离性:多个容器间默认是相互隔离的,即使运行在同一台主机上;
- 轻量级特性:秒级启动,占用资源少;
容器与虚拟机有什么区别?
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。很多同学会觉得,容器能做的事虚拟机也能做啊,到底有什么区别呢?
虚拟机
的缺点
- 占用资源多;
- 冗余步骤多;
- 启动慢;
容器
的优点
- 占用资源少;
- 提及小;
- 启动快;
下面是 Docker 官网截图(后文会解释什么是 Docker)
从这张图我们可以看出,传统的虚拟机非常重,每一个虚拟机都是一台独立的操作系统。而 Docker 则不同,它会重用宿主机已有的系统资源,同时又完美地隔离了不同的容器,所以实现起来非常轻,也便于被标准化。有同学会说,这跟传统虚拟机也没什么本质差别啊,新的虚拟机罢了。其实不然,正是这种“轻量级”的特性,使其有机会成为新的标准化的应用发布方式。