Docker 简介
是什么?
- 容器引擎——核心
- 开源
- go 编写
- 基于 LXC(Linux Container) 内核虚拟化实现
能干什么?
- 持续集成
- 简化配置
- 代码流水线管理
- 快速部署
- 提高开发效率
- 版本控制
- 可移植性 —— 可以移动到任意一台 Docker 主机上
- 标准性—— 容器保证所有配置依赖不变
- 隔离性与安全
和虚拟机比的优势
- 轻量 M G —— 资源都是钱
- 性能高
- 共享主机内核, 没有 Hypervisor 层开销
- 系统级虚拟化,
- 占用资源少
- 使用更加方便
- 配置简单——标准化
- 要求低,不需要 CPU 虚拟化技术支持
虚拟机也有优势
- 安全性好——docker 只是进程级别的隔离,虚拟机是物理层面的隔离
- 有自己完整的操作系统
涉及到的技术
- LXC: Linux 容器技术,共享内核
- Cgroups :control groups
- 内核提供的限制资源的技术(CPU,内存)
- namespace:隔离技术:
- UTS—— 每个容器可以有自己的 hostname 和 domainame
- IPC——进程间通信 每个容器有其自己的 System V IPC 和 POSIX 消息队列文件系统,因此,只有在同一个 IPC namespace 的进程之间才能互相通信
- PID——进程 每个 PID namespace 中的进程可以有其独立的 PID
- Network、每个容器用有其独立的网络设备,IP 地址,IP 路由表,
- Mount——每个容器能看到不同的文件系统层次结构
- User 每个 container 可以有不同的 user 和 group id
- AUFS(advanced multi layered unification filesystem):高级多层统一文件系统,是 UFS 的一种
docker engine
关键词:洋葱模型,cs 架构
三层洋葱模型:
- Cli
- restapi
- docker daemon
c/s 架构:
- client
- restapi(http)
- server
容器和镜像
镜像
- 静态
- 类似与面向对象中的类
- 只有多层只读层
数据持久化
网络
- bridge
- host-only
- none
- overlay
- 原文作者:战神西红柿
- 原文链接:https://tomatoares.github.io/posts/cloud/docker%E7%AE%80%E4%BB%8B/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。