1. 什么是容器(container)?
-
轻量级、可移植、自包含的软件打包技术,使应用程序可以在任何地方以相同的方式运行。简单来说,容器(container)本质是一个Linux进程,它共享主机的CPU、内存等资源,为分层结构,它有自己的IP地址,并且通过端口映射方式能与公网通信(容器IP映射到主机中能访问公网的IP地址),容器就是拥有不同IP地址的Linux进程。
-
容器由两部分组成:
(1)应用程序本身。
(2)依赖:比如应用程序需要的库或其他软件容器在Host OS的用户空间中运行,与操作系统的其他进程隔离。
-
容器部署和启动速度更快、开销更小,也更容易迁移。
2.容器与虚拟机之间的区别
-
虚拟机是操作系统级别的隔离;容器是进程级别的隔离。
-
虚拟机需要有完整的操作系统;容器不需要客户机操作系统。
-
同一虚拟机上的应用程序并没有隔离。容器镜像的轻量性和不可变性。
-
虚拟机被vcenter Server、RHV Manager等工具管理;容器被由Kubernetes、Apache、Docker Swarm Mesos等工具管理。
-
虚拟机包括应用程序和整个操作系统,虚拟机占用空间大,资源消耗高,可移植性差;虚拟机只包含应用程序和它运行时需要的环境,比较轻量,占用空间小,可移植性强。