Docker 基本理解

容器: 磁盘占用空间更少

虚拟机: 应用 依赖的库 完整的操作系统  docker : 应用.   依赖的库

虚拟机: 模拟硬件行为 耗内存 cpu  

docker 不需要

由于容器不容易安装和管理  docker可以 把开发的应用程序自动部署到容器里的开元引擎

Docker作用

1.开发  测试 部署服务

2.隔离的运行环境

3.搭建测试环境

docker 基本组成

docker client 客户端    :c/s  本地/远程

docker daemon             :守护进程

docker image 镜像    :容器的基石  容器的源代码 启动容器的各种条件  层叠只读文件

docker container 容器 :通过镜像启动  写时复制 copy on write   run命令启动容器

                                   :创建新容器时 docker会构建出一个镜像栈  栈的最顶层添加可写层

docker registry 仓库 : 用仓库保存用户构建的镜像  通过仓库查找镜像 pull 下载镜像  公有 docker hub  私有

通过客户端访问守护进程 操作容器 容器存储在镜像里 而镜像保存在仓库里

docker 依赖 linux 内核特性

namespaces 命名空间

封装 :代码的隔离

操作系统 :系统资源的隔离 (进程 文件系统  网络 .....)

PID (process ID) :进程的隔离

NET (Network) :管理网络接口

IPC (InterProcess Communication):管理跨进程通信的访问

MNT(Mount) :挂载点 文件系统相关隔离

UTS(Unix Timesharing System) :隔离内核和版本标识

Control groups是linux 提供的 限制 记录 隔离 进程组 所使用的机制 Control groups 就是为了实现容器而生

Control groups 提供功能

资源限制 :给进程组设定内存使用上限

优先级设定 :哪些优先使用

资源计量 :计算进程组使用了多少资源 计费系统中很重要

资源控制   :可以将进程组挂起和恢复

docker 容器的能力

文件系统的隔离 :每个容器都有自己的root 文件系统

进程的隔离 :每个容器都运行在自己的进程环境中

网络隔离 :容器间的虚拟网络接口和IP 地址都是分开的

资源隔离和分组 :使用cgroup 将CPU 和内存之类的资源独立分配给每个docker 容器

推荐阅读更多精彩内容