01 Docker 概述
[TOC]
00X01 Docker是什么
- Docker 是一个开源的应用容器引擎
- 一种操作系统级的虚拟化技术
- 容器是完全使用沙箱机制,相互之间不会有任何接口
- 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)
- 开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 服务器上
00X02 Docker设计目标
- 提供简单的应用程序打包工具
- 开发人员和运维人员职责逻辑分离
- 多环境保持一致性
00X03 Docker基本组成
服务 | 注释 |
---|---|
Docker Client | 客户端 |
Ddocker Daemon | 守护进程 |
Docker Images | 镜像 |
Docker Container | 容器 |
Docker Registry | 镜像仓库 |
00X04 容器vs 虚拟机
说明 | Container | VM |
---|---|---|
启动速度 | 秒级 | 分钟级 |
运行性能 | 接近原生 | 5%左右损失 |
磁盘占用 | MB | GB |
数量 | 成百上千 | 一般几十台 |
隔离性 | 进程级别 | 系统级(更彻底) |
操作系统 | 只支持Linux | 乎所有 |
封装程度 | 只打包项目代码和依赖关系,共享宿主机内核 | 完整的操作系统 |
- 优点
- 更加轻量简洁高效
- 传统虚拟机需要给每个VM安装系统,Docker技术代替安装系统
- 容器使用共享公共库和程序
- 缺点
- 容器的隔离性没有虚拟化强
- 共用Linux内核,安全性有先天缺陷
- SElnux难以控制
- 监控容器和容器排错麻烦
00X05 Docker应用场景
- 应用程序打包和发布
- 应用程序隔离
- 持续集成
- 部署微服务
- 快速搭建测试环境
- 提供PaaS产品(平台即服务)
00X06 镜像
- 在Docker中容器是基于镜像启动的
- 镜像是启动容器的核心
- 镜像采用分层设计
- 使用快照的COW技术,确保底层数据不丢失
测试留言板
测试邮件
测试
slave