Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker初识

2,435 views

Published on

Docker学习笔记

Published in: Software
  • Be the first to comment

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 *

×