docker简介

docker简介
一、什么是容器:
一种虚拟化方案。
操作系统级别的虚拟化,只能运行相同或相似内核的操作系统
依赖于linux内核特性:namespace和cgroups(control group)

二、什么是docker?
将应用程序自动部署到容器
go语言开源引擎,github地址https://github.com/docker/docker
基于apache 2.0 开源授权协议发行
特点:提供简单轻量的建模方式
职责的逻辑分离
快速高效的开发生命周期
鼓励面向服务的架构,高类聚,低耦合,单一执行任务
三、docker使用场景
使用docker容器开发,测试,部署服务
创建隔离的运行环境
搭建测试环境
构建多用户的平台即服务paas基础设施
提供软件即服务saas应用程序
高性能,超大规模的宿主机部署
四、docker的基本组成
docker client客户端
docker daemon守护进程
docker image镜像
docker container容器
docker registry仓库

docker 客户端/守护进程
C/S架构
本地/远程
docker镜像
容器的基石
层叠的只读文件系统----bootfs、rootfs永远都是只读的
联合加载union mount:会将各层文件系统叠加到一起,最终文件系统会包含所有底层的目录和文件,
docker将这样的文件叫做镜像
一个镜像可以放在另一个镜像的顶部
位于下面的镜像叫做父镜像
最底部的镜像叫做基础镜像,也就是图中的rootfs
镜像是docker生命周期中构建和打包阶段
五、容器相关技术
docker依赖的linux内核特性
namespace:命名空间,封装的一种概念,系统资源的隔离(进程,网络,文件系统),实现轻量化
                   pid:进程隔离
                   net:网络管理
                   ipc:管理跨进程的通信访问
                   mnt:管理挂载点
                   uts:隔离内核和版本标识
control group:控制组,用于资源分配
                    资源限制
                    优先级设定
                    资源计量
                    资源控制
带给了docker什么能力:文件系统隔离:每个容器都有自己的root文件系统
                    进程隔离:每个容器都运行在自己的进程环境中
                     网络隔离:容器间的虚拟网络接口和ip地址都是分开的      
                     资源的隔离和分组:使用cgroup将cpu和内存之类的资源独立分配给每个docker容器


你可能感兴趣的:(docker简介)