Docker概念理解
容器概念理解
容器是一种虚拟化的方案
特点
- 它是操作系统级别的虚拟化
- 只能运行相同或相似内核的系统中
- 依赖linux内核NameSpace和Cgroups(Control Group)特性
相对于虚拟机的优点
- 虚拟机是利用软件模拟硬件,需要安装操作系统,依赖库,应用;而容器把其中的大头操作系统给去掉了,所以非常轻量化,占用系统资源(硬盘,内存,CPU)会少很多
- 安装方便,启动速度快
什么是Docker?
- 将应用程序自动部署到容器的轻量级引擎技术
特点
- Go语言编写,遵从Apache2.0开源协议
- 目标是消除各环境差异,实现快速开发测试部署软件生命周期
- 提倡面向服务的编程,每个容器最好只部署一个微服务
适用场景
- 适用Docker容器进行开发、测试、部署
- 创建隔离的环境,很适合个性化的SaaS服务
- 搭建测试环境
四个核心概念理解
- Image
在Docker 中非常非常重要的概念,它是Docker 的核心,Docker 所创建运行的
Container 完全基于Image 运行,并且它是只读的,我们在下一个册子会去解释,现在您
只需要记住Image 在Docker 中非常的重要。 -
Repository
存放Image 的地方,其中Docker Hub 下面就有非常多非常多的Repository,每个
Repository 有很多很多的Image。 -
Registry
Registry 其实很容易和Repository 混淆,Docker Hub 在我的理解是一个Registry,
也就是说Registry 不直接存放Image,Image 是由Registry 下面的若干个Repository 去
存放的,可能后文中我们会去搭建一个private Registry 存放image,你可以理解我们的
Registry 下有一个默认的Repository 去存放。 -
Container
Container 是一个可读写的空间,是由若干个Image 组成的,我们的应用以后都会运
行在Container 中,同样在后文中我们会为大家介绍如何创建容器,如何启动运行容器。
三层概念
- Docker Layer 是一个宏观的layer, 包括了若干个read-only 的Images 和一个writable 和readable 的Container layer.
- Image Layer 是最下面的层(我指的不是Kernel)那些read-only 的Images.
- Container Layer 是一个可读可写的Layer,我们不仅可以用yum/apt-get 安装软件,而且可以部署我们的服务,产生或者修改一些新的文件.