最近重新学习docker,好久不用,什么都是忘得差不多了,每天地铁看看视频,记记笔记,重新学习docker。
docker简介
什么是容器?
一种虚拟化的方案
操作系统级别的虚拟化
只能运行在相同或相似内核的操作系统
依赖于linux内核特性:Namespace和Cgroups(Control Group)
linux容器 VS 虚拟机
使用的容量更小
什么是docker?
将应用程序自动部署到容器
GO语言开源引擎
2013 dotCloud
基于Apache 2.0开源授权协议发行
docker的目标
提供简单轻量的建模方式
职责的逻辑分离
快速高效的开发生命周期
鼓励使用面向服务的架构
docker的使用场景
使用docker容器开发测试,部署服务
创建隔离的运行环境
搭建测试环境
构建多用户的平台即服务(PaaS)基础设施
提供软件即服务(SaaS)应用程序
高性能、超大规模的宿主机部署
Docker容器相关技术
docker依赖的linux内核特性
NameSpaces命名空间
Control group (Cgroups)控制组
Namespace命名空间
编程语言
封装 -> 代码隔离
操作系统
系统资源的隔离
进程、网络、文件系统...
PID (Process ID) 进程隔离
NET (Network) 管理网络接口
IPC (InterProcess Communication) 管理跨进程通信的访问
MNT (Mount) 管理挂载点
UTS (Unix TimeSharing System) 隔离内核和版本标识
Control groups 控制组
用来分配资源
来源于google
Linux Kernel 2.6.24 @ 2007
资源限制
优先级设定
资源计量
资源控制
Docker容器的能力
文件系统隔离: 每个容器的都有自己的root文件系统
进程隔离: 每个容器都运行在自己的进程环境中
网络隔离: 容器的虚拟网络接口和IP地址是分开的
资源隔离和分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器
作者:若与
链接:https://www.jianshu.com/p/3340aa0cbb6e