深入理解Docker架构与实现

来自DaoCloud的大牛深入理解Docker架构与实现,文末给出大量Docker源代码解析的链接,值得深入学习docker的小伙伴了解。
展开查看详情

1.深入理解 Docker 架构与实现 孙宏亮 allen.sun@daocloud.io 2014.12.13

2.自我介绍 DaoCloud ,浙江大学 PaaS(Cloud Foundry) 、 Docker 开源社区 对 PaaS 有深入研究和丰富实践,撰写了大量有深度的 技术博客 。 合伙人身份加入 DaoCloud 团队 ,致力于传播以 Docker 为主的容器的技术,推动互联网应用的容器化步伐。

3.DaoCloud Startup 建设 DaoCloud 平台 提供以 Docker 等轻量级容器为核心的企业级云计算服务 ——Docker Hub Mirror Service ——More in the furture

4.Agenda Docker 简介 Docker 架构 Docker Hub Mirror

5.Docker 介绍 Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating system–level virtualization on Linux. —— from wiki 图片源: http://en.wikipedia.org/wiki/Docker_%28software%29 1. 2. 3. 4. 5. 1.4.0 since yesterday

6. Docker 架构 Docker Client Docker Daemon Docker Registry Driver Graph libcontainer Docker Container

7.Docker 架构 ——Docker Daemon Docker Server 服务于 Docker API Engine 执行引擎 Job Engine 内工作最小执行但愿

8.Docker 架构 ——Docker Server Router Handler

9.Docker 架构 ——Driver Execdriver 管理容器的运行 Networkdriver 管理容器的网络 Graphdriver 管理容器的镜像

10.Docker 架构 ——execdriver LXC 早版使用 LXC 作为创建管理容器的工具 Native 如今使用 native 来创建管理容器, native 调用 libcontainer

11.Docker 架构 ——libcontainer libcontainer namespace cgroups apparmor netlink capabilities ……

12.Docker 架构 ——networkdriver Bridge Network Interface IP port

13.Docker 架构 ——Docker 网络模式 Docker Daemon 网络模式: bridge 桥接 None ( disabled ) Docker Container 网络模式: bridge 桥接模式 Host 模式 other container 模式 None ( disabled )模式

14.Docker 架构 ——graphdriver aufs Btrfs Devmapper Vfs Overlayfs merged into Linux Kenerl 3.18-rc2 Overlayfs in docker 1.4.0 yesterday

15.Docker 架构 ——Graph repository graphdb Graph

16.Docker Pull 流程 Docker Registry

17.Docker 架构 ——Registry (index.docker.io) Registry 功能 管理镜像存储 供开发者下载、上传 Docker Hub Docker 官方提供 (index.docker.io) Docker Hub 特性 镜像丰富 保持更新 Challenges !

18.Docker Hub Mirror 架构图 Docker Hub 的功能拓展 Docker Hub “ CDN ” 对用户透明 图片源: http://www.qiniu.com/ DaoCloud Docker Hub Mirror Serve developers in China

19.Docker Hub Mirror 流程图 Thanks to 七牛 , much faster than you think when pulling Much faster than yourself pull from Docker Hub

20.Docker Hub Mirror 原理

21.用户 如何选择? 技术爱好者( hub )和企业用户的区别( private ) private registry Mirror 镜像多样性 较丰富,需人为手动同步 足够丰富,与 Docker Hub 一致, 自动同步 使用方式 添加 URL ,侵入 Dockerfile 使用 设定 Docker 启动参数,无侵入性 registry 升级 或出现故障 镜像全盘失效,修改所有镜像配置,重新从 Docker Hub 下载 自动跳转到 Docker Hub 下载,用户无任何影响 Hub 镜像更新 老版本镜像 失效 , 用户 使用受阻 除非管理员人为 下载更新版本 老版本镜像失效 , Mirror 自动 下载更新版本覆盖前者,对用户透明 内部部署方式 私有化内部 部署方案 Public Serivces 镜像下载 由管理员选择 由用户选择 镜像存储 管理员自行 管理,备份, 一致性考虑 用户无需关心 访问速度 快速,私有网络 快速

22.Docker Mirror

23.Docker Mirror

24.Docker Mirror

25.Docker Mirror

26.欢迎大家体验 DaoCloud Mirror www.daocloud.io

27.分享资料 : 玩转 Docker 镜像 Docker 源码分析(一): Docker 架构 Docker 源码分析(二): Docker Client 创建与命令执行 Docker 源码分析(三): Docker Daemon 启动 Docker 源码分析(四): Docker Daemon 之 NewDaemon 实现 Docker 源码分析(五): Docker Server 的创建 Docker 源码分析(六): Docker Daemon 网络 ( coming soon ) Docker 源码分析(七): Docker Container 网络( coming soon ) …… 注:文章首发位于 InfoQ 。

28.谢谢!