Docker
文章目录
1.简介
- 1.1什么是容器?
一种虚拟化的方案
操作系统级别的虚拟化
只能运行相同或相似内核的操作系统
依赖于 Linux内核特性: Namespace和 Groups( Control Group)
- 1.2、什么是 Docker?
将应用程序自动部署到容器
Go语言开源引擎 Github地址.https://github.com/docker/docker
2013年初 dotcloud基于 Apache2.0开源授权协议发行
- 1.3、目标
提供简单轻量的建模方式
职责的逻辑分离
快速高效的开发生命周期
鼓励使用面向服务的架构
- 1.4、使用场景
1.使用 Docker容器开发、測试、部署服务。
2.创建隔离的运行环境
3.搭建测试环境
4.构建多用户的平台即服务(PaaS)基础设施
5.提供软件即服务(SaaS)应用程序
6.高性能、超大规模的宿主机部署
2.基本组成
1、C/S架构
2、Docker Image镜像
容器的基石:底层是bootfs
层叠的只读文件系统:
联合加载(union mount)
3、Docker Container容器
通过镜像启动
启动和执行阶段
写时复制(copy on write)
4、Docker Registry 仓库
Docker依赖linux内核特性
1.NameSpace命名空间
提供系统资源的隔离,实现轻量级虚拟化
PID ( Process ID)进程ID
NET ( Network)管理网络接口
IPC ( Interprocess Communication )管理跨进程通信的访问
MNT ( Mount ) 管理挂载点
UTS ( Unix Timesharing System) 隔离内核和版本标志
这些资源是被control group
管理起来的
2.control group 控制组
他的大概功能:
资源限制
进程、线程组。。优先级设置
资源计量
资源的控制。比如说可以将进程挂起或恢复
而这些带个docker的能力有哪些呢?
3. Docker的能力
- 文件系统隔离:每个容器都有自己的root文件系统
- 进程隔离:每个容器都运行在自己的进程环境中
- 网络隔离:容器间的虚拟网络接口和|P地址都是分开的
- 资源隔离和分组:使用 groups将CPU和内存之类的资源独立分配给每
Docker容器