什么是容器
容器是一种虚拟化的方案,是操作系统级别的虚拟化,所以只能运行与相同内核的操作系统
容器和虚拟机有什么区别
(1)虚拟机是基于主机硬件的,容器则依赖于主机上的操作系统
(2)虚拟机可以安装任何操作系统,可以与主机上的操作系统不同,容器则只能运行与主机操作系统内核相同的系统
(3)虚拟机占用的资源非常多,是在当前系统中完全再运行另一个操作系统,容器则是利用当前的系统资源,在相同的资源下,容器可以运行更多的应用
什么是Docker
Docker就是一个开源的容器引擎,使用GO语言开发,基于linux内核,所以需要运行在linux系统中
Docker的目标
Docker的目标就是解决环境依赖问题,例如:
(1)依赖冲突
需要在php4上运行一个站点,另一个站点想运行在php5上,这在统一系统中就会出现冲突,使用Docker就可以解决此问题
(2)缺少依赖
之前我们在一个新环境中运行应用时,通常会缺少一些依赖环境,先安装各种依赖,使用Docker就很快解决了此问题,因为所以依赖环境都和打包在了一起
(3)平台依赖
平台版本的不同不再是个麻烦,两个平台都运行了Docker,执行起来就没有任何问题
Docker的使用场景
(1)使用容器开发、测试、部署服务
Docker很轻量化,开发人员可以在本地创建、构建、分享Docker容器,然后提交到测试,再进入生产环境
(2)创建隔离的运行环境
服务的不同版本可能需要提供不同服务,例如服务于不同的用户,使用Docker就可以很轻松的构建出隔离的运行环境
(3)搭建测试环境
可以很方便的在本地搭建集群等复杂的测试环境
(4)构建paas基础设施,提供saas应用程序
(5)高性能、大规模的宿主机部署
目前很多云服务平台都提供了Docker的支持,使开发者很容易部署各种服务