O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Docker初识

2.371 visualizações

Publicada em

Docker学习笔记

Publicada em: Software
  • Seja o primeiro a comentar

Docker初识

  1. 1. 2015年 hubugui@gmail.com 初识
  2. 2. • 起源dotCloud公司PAAS引擎 – http://github.com/docker/docker • Linux Container Engine – 容器间隔离,共享OS,资源配给 – 虚拟机(VMWare/Xen/KVM/VirtualBox)替代品 • 软件集装箱 – Docker Hub 托管常用软件镜像的集装箱 • 软件交付革新 Docker是什么 *
  3. 3. Docker原理 • 名字空间(Name Spaces) – 容器内外进程之间不可见,独立目录 • 控制组(Control Groups) – 资源访问限制,CPU/内存/硬盘 • 联合文件系统(Aufs/Device mapper/Btrfs/Vfs) – 容器复用和版本管理 • 容器格式 – LXC/1.20V后支持 libcontainer*
  4. 4. UnionFS(联合文件系统) *
  5. 5. Virtual Machine VS Docker * Docker优势 • 节省虚拟Guest OS需要的大量空间 – 硬盘空间以GB为单位,内存以MB位单位 – Guest OS越多越体现Docker优势 • 性能接近原生系统 • 轻量级,快速创建和启动
  6. 6. 软件集装箱 *
  7. 7. Docker Hub * • 类似GitHub,常用软件镜像的集装箱 • 开源,可用在私有环境 • https://hub.docker.com/
  8. 8. 软件交付(创建/发布/运行) * • 软件运行环境 – 操作系统 – 开发调试工具 – 第三方软件或库 – 配置项 交付时常遇到不同机器间环境不一致性的坑,比如 版本/环境变量/库路径/编译选项......
  9. 9. 环境一致性的解决方法 * • 以前 – 创建阶段:文档+人肉手动,效率取决于开发队伍习惯 – 发布运行阶段:安装包或脚本 • 有了Docker – 借助Docker Hub,打包整个运行环境,一次生成到处运行 – 不同的软件运行环境得到隔离,冲突减少
  10. 10. Docker Life Cycle * http://www.slideshare.net/winggundamth/introduction-to-docker-40139950
  11. 11. 例子 * • Web(python/mysql/webpy/redis) – 开发、测试、运维,借助Docker Hub,快速部署 • Android ROM开发 – 庞大的交叉编译工具链,依赖库 – 创建标准镜像,开发者在不同机器均可使用,减少折腾 • 标准化项目环境 – Python/VIM/VLC/FFMPEG/LLVM/OpenStack/Hadoop/QT/Redis
  12. 12. Virtual Desktop * https://github.com/rogaha/docker-desktop
  13. 13. Docker不足 • 安全性 – 隔离程度不如虚拟机 • 平台 – 仅限于Linux – 下代Windows Server原生支持 *
  14. 14. 安全性 • 名字空间(Name Spaces) – 2.6.15 版本(2008 年)之后被引入,数年间可靠性在诸多大型系统中被实践验证 • 控制组(Control Groups) – 始于 2006 年,内核从 2.6.24 版本开始引入 • Docker守护进程拥有root权限 – 采用本地UNIX Socket取代127.0.0.1 – SSL证书加强客户端和守护进程之间的安全机制 – 容器root映射到宿主机非root,未来重点在于允许守护进程工作在非root • Linux内核能力机制 – 限制容器进程能力,白名单 *
  15. 15. 参考 • 第一本Docker书 • Docker —— 从入门到实践 • Docker基础技术:Linux Namespace(上) • What is Docker? • containers-docker-virtual-machines-and-hpc • performance-of-docker-vs-vms • introduction-to-docker *

×