1.容器的定义
容器是一种轻量级、可移植的软件打包技术。容器的设计人员将集装箱的思维运用到软件打包上,解决了软件在不同的环境的移植部署的问题。
2、容器相较于传统虚拟机的优势
从容器的定义可知,容器有两个特点:轻量级、可移植性好。
容器的轻量级很好理解,相比传统的虚拟机,容器是共享host os 的也就是容器是到进程级别的虚拟化,传统的vm除了包含应用本身极其依赖库以外还包括操作系统(几十GB),因此说容器体积小,由于不用涉及操作系统的启动,容器的启动性能也会比传统虚拟机好。
要理解容器的另一个优点“可移植性好”,只需要理解容器的英文单词即可,容器的英文叫container,直接翻译就是“集装箱”。集装箱是干嘛的呢?集装箱解决了不同的货物在不同的交通工具运输的问题,在没有集装箱之前,对于货物的货主来说需要考虑货物的打包问题(比如钢铁不能压在鸡蛋和香蕉上-_-||),对于运输过程中的承运方来说也有同样卸货搬货的痛苦,幸运的是集装箱被设计出来了,任何货物被放到各自的集装箱里,以标准的集装箱(重点是标准化)被运输,承运方无需关心集装箱里具体的物品,也就不用担心钢铁把鸡蛋压岁。而今天我们的软件开发也面临应用部署环境多样(不同操作系统的虚拟机、服务器),如何才能让应用在不同的环境上运行的问题,docker引入集装箱的概念到软件打包上,将应用及其依赖打包成容器,而容器提供标准化接口,可以运行在几乎所有的平台上:公有云、私有云、物理主机、虚拟机,也就解决了应用移植的问题。