第一阶段:基本篇\01.Docker基本概念和框架等\01.Docker基本概念和框架等

Docker 简介

什么是容器

一种虚拟化的方案 操作系统级别的虚拟化 只能运行相同或相似内核的操作系统 依赖于Linux内核特性:Namespace 和 Cgroup (Controller group)

优点: 占用空间更小 虚拟机需要模拟硬件行为占用资源

什么是 Docker

将应用程序自动部署到容器中 基于apache2.0 开源

Docker 的目标

提供简单轻量级的建模方式 职责的逻辑分离 快速高效的开发生命周期(开发,测试,生成相同环境) 鼓励使用面向服务的架构(1个docker 仅运行一个服务)

Docker 的使用场景

使用Docker 容器开发、测试、部署服务 创建隔离的运行环境 搭建测试环境 构建多用户的平台及服务(PaaS)基础设施 提供软件即服务(SaaS)应用程序 高性能、超大规模的宿主机部署

Docker 的基本组成

Docker Client 客户端

C/S 架构 本地远程

Docker Daemon 守护进程

Docker Image 镜像

容器的基石 层叠的只读文件系统

add Apache add emacs rootfs bootfs

联合加载系统

Docker Container 容器

通过镜像启动 启动和执行阶段

可写层 add Apache add emacs rootfs bootfs

重要技术:写时记录

Docker Registry 仓库

共有/私有 Docker hub

https://docker.com/tryit

docker query tutorial

docker ps -l

docker commit id learn/ping

docker run learn/ping ping google.com

docker ps

docker inspect

docker images

docker push learn/ping

Docker 容器相关技术简介

Namespaces 命名空间

编程语言 封装 -> 代码隔离

操作系统 系统资源的隔离 进程、网络、文件系统

系统 PID (Process ID) 进程隔离 NET (Network) 管理网络接口 IPC (InterProcess Communication)管理跨进程通信的访问 MNT (Mount) 管理挂载点 UTS (Unix Timesharing System)隔离内核和版本标识

Control groups 控制组

用来分配资源 来源于 google Linux kernel 2.6.24@2017

Control groups 作用

资源限制 优先级设定 资源计量 资源控制

Docker 容器能力

文件系统格式:每个容器都有自己的 root 文件系统 进程隔离:每个容器都运行在自己的进程环境中 网络隔离:容器间的虚拟网络接口和IP地址都是分开的 资源隔离和分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker 容器