基础知识
有六种名称空间
一个隔离的用户空间应该隔离什么?
1.隔离PID:隔离环境的进程树和宿主机的进程树是隔离的
2.隔离挂载树( Mount)
3.隔离UTS:主机名、域名
4.隔离user、 group:
5.隔离 network
6.隔离IPC(进程间通信)
CGroups(Control Groups),隔离方式
可以实现各种系统资源的动态、静态的分配 。
可以创建一个隔离环境,共享底层的内核空间。
LXC: linux Container(现在已经从新变为RunC)
基于模版快速创建容器,容器中有完整的文件系统,但是和底层系统共用内核.
底层的文件系统和容器中的文件系统是隔离的.
Docker:LXC二次封装
lxc-create
docker仓库模版文件
镜像
:用来创建容器的模版,放在镜像仓库中
优点
:降低开发周期、成本
虚拟化和容器的区别
KVM虚拟化 虚拟机:虚拟机需要首先模拟硬件,然后在硬件的基础上安装系统 .
基于硬件虚拟化技术,是需要CPU支持的,是虚拟出来一个虚拟机.
虚拟机管理器是需要占用额外的系统资源的,占用6%左右的系统资源.
启动过程相对慢(分钟) 模版文件较大,和物理机完全隔离.
Docker 容器:直接在现有的系统中模拟一个环境.
基于内核虚拟化技术,没有虚拟任何东西是通过隔离技术实现的,不会对系统带来额外的开销。
直接虚拟出来一个用户空间使用简单.
启动非常块(秒级) 模版文件很小,在一定程度上和物理机隔离.
Docker的镜像
说明
:分层构建的各层都是共享的,分层构建的各层都是只读的.
分层构建
:首先构建基础系统,然后在基础系统上构建存在应用程序的系统.
联合挂载
:首先挂载基础层,然后挂载包含指定程序的层.
写时复制
:容器是基于写时复制实现写操作( copy on write),容器销毁时数据会被删除无法实现持久存储.
Docker的好处
实现服务的快速启动和隔离
降低了开发难度
降低了运维难度
Docker的编排工具
Machine Swarm Compose
Meos Marathon
Kubernetes
Docker架构(C/S)
Client
docker run
docker pull
--------------
DockerHost
Docker Daemon(守护进程)
默认仅仅监听在本地的 unix sock ,也可以监听在 socket(就可以远程管理).
image–>container(镜像变启动为容器)
Registry 存放镜像的仓库.
用户认证
版本仓库(repo)
名称:应用名称
tag:版本库中具体镜像的标签
标识方法:
版本库名:tag
nginx: 1. 4
使用场景
快速部署服务
多租户
实现隔离
提高开发效率
简化配置过程
实现软件的跨平台
文章目录
评论抢沙发