当前位置:首页 > 程序设计 >
《Docker源码分析》电子书封面

Docker源码分析

  • 发布时间:2020年05月28日 14:34:40
  • 作者:孙宏亮
  • 大小:27.9 MB
  • 类别:Docker电子书
  • 格式:PDF
  • 版本:高清完整版
  • 评分:8.2

    Docker源码分析 PDF 高清完整版

      给大家带来的一篇关于Docker相关的电子书资源,介绍了关于Docker、Docker源码方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小27.9 MB,孙宏亮编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.3。

      内容介绍

      Docker源码分析是一本引导读者深入了解Docker实现原理的技术普及读物,此书的主要目标是通过对Docker架构和源代码的详细讲解和解剖,帮助读者对Docker的底层实现有一个全面的理解。有需要的用户可以免费下载学习。

      作者通过大量的流程图和代码片段对Docker的架构、Docker的重要模块,特别是对Swarm、Machine和Compose这三个模块进行了详细介绍和深度剖析,无论是Docker的使用者还是开发者,通过阅读此书都可以对Docker有更深刻的理解,能够更好的使用或者开发Docker。

      作者简介

      孙宏亮是DaoCloud初创团队成员,软件工程师,浙江大学计算机科学专业应届毕业研究生。

      读研期间活跃在PaaS和Docker开源社区,对Cloud Foundry有深入研究和丰富实践,擅长底层平台代码分析,对分布式平台的架构有一定经验,撰写了大量有深度的技术博客。

      2014年末以合伙人身份加入DaoCloud团队,致力于传播以Docker为主的容器的技术,推动互联网应用的容器化步伐。

      Docker介绍

      Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率,并且提升诸如IO等方面的性能。

      由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多厂商的青睐,其中更是包括Google、Microsoft、VMware等业界行业领导者。Google在今年六月份推出了Kubernetes,提供Docker容器的调度服务,而今年8月Microsoft宣布Azure上支持Kubernetes,随后传统虚拟化巨头VMware宣布与Docker强强合作。今年9月中旬,Docker更是获得4000万美元的C轮融资,以推动分布式应用方面的发展。

      从目前的形势来看,Docker的前景一片大好。本系列文章从源码的角度出发,详细介绍Docker的架构、Docker的运行以及Docker的卓越特性。本文是Docker源码分析系列的第一篇———Docker架构篇。

      Docker版本信息

      本文关于Docker架构的分析都是基于Docker的源码与Docker相应版本的运行结果,其中Docker为最新的1.2版本。

      Docker架构分析内容安排

      本文的目的是:在理解Docker源代码的基础上,分析Docker架构。分析过程中主要按照以下三个步骤进行:

      * Docker的总架构图展示

      * Docker架构图内部各模块功能与实现分析

      * 以Docker命令的执行为例,进行Docker运行流程阐述

      目录:

      • 赞誉
      • 前言
      • 第1章 Docker架构
      • 1.1 引言
      • 1.2 Docker总架构图
      • 1.3 Docker各模块功能与实现分析
      • 1.3.1 Docker Client
      • 1.3.2 Docker Daemon
      • 1.3.3 Docker Registry
      • 1.3.4 Graph
      • 1.3.5 Driver
      • 1.3.6 libcontainer
      • 1.3.7 Docker Container
      • 1.4 Docker运行案例分析
      • 1.4.1 docker pull
      • 1.4.2 docker run
      • 1.5 总结
      • 第2章 Docker Client创建与命令执行
      • 2.1 引言
      • 2.2 创建Docker Client
      • 2.2.1 Docker命令的flag参数解析
      • 2.2.2 处理flag信息并收集Docker Client的配置信息
      • 2.2.3 如何创建Docker Client
      • 2.3 Docker命令执行
      • 2.3.1 Docker Client解析请求命令
      • 2.3.2 Docker Client执行请求命令
      • 2.4 总结
      • 第3章 启动Docker Daemon
      • 3.1 引言
      • 3.2 Docker Daemon的启动流程
      • 3.3 mainDaemon()的具体实现
      • 3.3.1 配置初始化
      • 3.3.2 flag参数检查
      • 3.3.3 创建engine对象
      • 3.3.4 设置engine的信号捕获
      • 3.3.5 加载builtins
      • 3.3.6 使用goroutine加载daemon对象并运行
      • 3.3.7 打印Docker版本及驱动信息
      • 3.3.8 serveapi的创建与运行
      • 3.4 总结
      • 第4章 Docker Daemon之NewDaemon实现
      • 4.1 引言
      • 4.2 NewDaemon具体实现
      • 4.3 应用配置信息
      • 4.3.1 配置Docker容器的MTU
      • 4.3.2 检测网桥配置信息
      • 4.3.3 查验容器间的通信配置
      • 4.3.4 处理网络功能配置
      • 4.3.5 处理PID文件配置
      • 4.4 检测系统支持及用户权限
      • 4.5 配置工作路径
      • 4.6 加载并配置graphdriver
      • 4.6.1 创建graphdriver
      • 4.6.2 验证btrfs与SELinux的兼容性
      • 4.6.3 创建容器仓库目录
      • 4.6.4 迁移容器至aufs类型
      • 4.6.5 创建镜像graph
      • 4.6.6 创建volumesdriver以及volumes graph
      • 4.6.7 创建TagStore
      • 4.7 配置Docker Daemon网络环境
      • 4.7.1 创建Docker网络设备
      • 4.7.2 启用iptables功能
      • 4.7.3 启用系统数据包转发功能
      • 4.7.4 创建DOCKER链
      • 4.7.5 注册处理方法至Engine
      • 4.8 创建graphdb并初始化
      • 4.9 创建execdriver
      • 4.10 创建daemon实例
      • 4.11 检测DNS配置
      • 4.12 启动时加载已有Docker容器
      • 4.13 设置shutdown的处理方法
      • 4.14 返回daemon对象实例
      • 4.15 总结
      • 第5章 Docker Server的创建
      • 5.1 引言
      • 5.2 Docker Server创建流程
      • 5.2.1 创建名为"serveapi"的Job
      • 5.2.2 配置Job环境变量
      • 5.2.3 运行Job
      • 5.3 ServeApi运行流程
      • 5.4 ListenAndServe实现
      • 5.4.1 创建router路由实例
      • 5.4.2 创建listener监听实例
      • 5.4.3 创建http.Server
      • 5.4.4 启动API服务
      • 5.5 总结
      • 第6章 Docker Daemon网络
      • 6.1 引言
      • 6.2 Docker Daemon网络介绍
      • 6.3 Docker Daemon网络配置接口
      • 6.4 Docker Daemon网络初始化
      • 6.4.1 启动Docker Daemon传递flag参数
      • 6.4.2 解析网络flag参数
      • 6.4.3 预处理flag参数
      • 6.4.4 确定Docker网络模式
      • 6.5 创建Docker网桥
      • 6.5.1 提取环境变量
      • 6.5.2 确定Docker网桥设备名
      • 6.5.3 查找bridgeIface网桥设备
      • 6.5.4 bridgeIface已创建
      • 6.5.5 bridgeIface未创建
      • 6.5.6 获取网桥设备的网络地址
      • 6.5.7 配置Docker Daemon的iptables
      • 6.5.8 配置网络设备间数据报转发功能
      • 6.5.9 注册网络Handler
      • 6.6 总结
      • 第7章 Docker容器网络
      • 7.1 引言
      • 7.2 Docker容器网络模式
      • 7.2.1 bridge桥接模式
      • 7.2.2 host模式
      • 7.2.3 other container模式
      • 7.2.4 none模式
      • 7.3 Docker Client配置容器网络模式
      • 7.3.1 使用Docker Client
      • 7.3.2 runconfig包解析
      • 7.3.3 CmdRun执行
      • 7.4 Docker Daemon创建容器网络流程
      • 7.4.1 创建容器之网络配置
      • 7.4.2 启动容器之网络配置
      • 7.5 execdriver网络执行流程
      • 7.5.1 创建libcontainer的Config对象
      • 7.5.2 调用libcontainer的namespaces启动容器
      • 7.6 libcontainer实现内核态网络配置
      • 7.6.1 创建exec.Cmd
      • 7.6.2 启动exec.Cmd创建进程
      • 7.6.3 为容器进程初始化网络环境
      • 7.7 总结
      • 第8章 Docker镜像
      • 8.1 引言
      • 8.2 Docker镜像介绍
      • 8.3 rootfs
      • 8.4 Union Mount
      • 8.5 image
      • 8.6 layer
      • 8.7 总结
      • 第9章 Docker镜像下载
      • 9.1 引言
      • 9.2 Docker镜像下载流程
      • 9.3 Docker Client
      • 9.3.1 解析镜像参数
      • 9.3.2 配置认证信息
      • 9.3.3 发送API请求
      • 9.4 Docker Server
      • 9.4.1 解析请求参数
      • 9.4.2 创建并配置Job
      • 9.4.3 触发执行Job
      • 9.5 Docker Daemon
      • 9.5.1 解析Job参数
      • 9.5.2 创建session对象
      • 9.5.3 执行镜像下载
      • 9.6 总结
      • 第10章 Docker镜像存储
      • 10.1 引言
      • 10.2 镜像注册
      • 10.3 验证镜像ID
      • 10.4 创建镜像路径
      • 10.4.1 创建mnt、diff和layers子目录
      • 10.4.2 挂载祖先镜像并返回根目录
      • 10.5 存储镜像内容
      • 10.5.1 解压镜像内容
      • 10.5.2 收集镜像大小并记录
      • 10.5.3 存储jsonData信息
      • 10.6 注册镜像ID
      • 10.7 总结
      • 第11章 docker build实现
      • 11.1 引言
      • 11.2 docker build执行流程
      • 11.2.1 Docker Client与docker build
      • 11.2.2 Docker Server与docker build
      • 11.2.3 Docker Daemon与docker build
      • 11.3 Dockerfile命令解析流程
      • 11.4 Dockerfile命令分析
      • 11.4.1 FROM命令
      • 11.4.2 RUN命令
      • 11.4.3 ENV命令
      • 11.5 总结
      • 第12章 Docker容器创建
      • 12.1 引言
      • 12.2 Docker容器运行流程
      • 12.3 Docker Daemon创建容器对象
      • 12.3.1 LookupImage
      • 12.3.2 CheckDepth
      • 12.3.3 mergeAndVerifyConfig
      • 12.3.4 newContainer
      • 12.3.5 createRootfs
      • 12.3.6 ToDisk
      • 12.3.7 Register
      • 12.4 Docker Daemon启动容器
      • 12.4.1 setupContainerDns
      • 12.4.2 Mount
      • 12.4.3 initializeNetworking
      • 12.4.4 verifyDaemonSetting
      • 12.4.5 prepareVolumesForContainer
      • 12.4.6 setupLinkedContainers
      • 12.4.7 setupWorkingDirectory
      • 12.4.8 createDaemonEnvironment
      • 12.4.9 populateCommand
      • 12.4.10 setupMountsForContainer
      • 12.4.11 waitForStart
      • 12.5 总结
      • 第13章 dockerinit启动
      • 13.1 引言
      • 13.2 dockerinit介绍
      • 13.2.1 dockerinit初始化内容
      • 13.2.2 dockerinit与Docker Daemon
      • 13.3 dockerinit执行入口
      • 13.3.1 createCommand分析
      • 13.3.2 namespace.exec
      • 13.4 dockerinit运行
      • 13.4.1 reexec.Init()的分析
      • 13.4.2 dockerinit的执行流程
      • 13.5 libcontainer的运行
      • 13.5.1 Docker Daemon设置cgroups参数
      • 13.5.2 Docker Daemon创建网络栈资源
      • 13.5.3 dockerinit配置网络栈
      • 13.5.4 dockerinit初始化mount namespace
      • 13.5.5 dockerinit完成namespace配置
      • 13.5.6 dockerinit执行用户命令Entrypoint
      • 13.6 总结
      • 第14章 libcontainer介绍
      • ......
      • 第15章 Swarm架构设计与实现
      • ......
      • 第16章 Machine架构设计与实现
      • ......
      • 第17章 Compose架构设计与实现
      • ......

      学习笔记

      使用 Maven 插件构建Docker镜像

      通过 Maven 的 Docker 插件可以构建 Docker 镜像 快速入门 在 pom.xml 中添加 Docker 插件 plugin groupIdcom.spotify/groupId artifactIddocker-maven-plugin/artifactId version0.4.13/version configuration imageNamelinyuantongxue/docker-demo:0.0.1/imageName // 指定镜像名称,linyuantongxue 是仓库名称(对应 DockerHub 用户名),docker-demo 是镜像名称(对应 DockerHub 仓库名),0.0.1 是标签名称(相当于版本号) baseImagejava/baseImage // 指定基础镜像,等同 FROM 指令 entryPoint[java,-jar,app.jar]/entryPoint // 等同于 ENTRYPOINT 指令 resources resource targetPath//targetPath directory${project.build.directory}/directory // 指定要复制的根目录,${project.build.directory} 表示 target 目录 include${project.build.fin……

      新手把mysql装进docker中碰到的各种问题

      前言 最近电脑经常关机要关好长时间,老是需要长按电源键强行关机。也不知道是怎么回事。 后来查看关机时的日志,发现是mysql停不掉。这可闹心了!怎么办?上网搜了搜也没有找到什么好的解决办法。总不能每次关机都要长按电源键吧?电脑那么贵,况且还是我自己的电脑,坏了怎么办? 把mysql删掉?作为一个写代码的,电脑里也不能不装mysql啊,天天要用的!装在虚拟机里?这个似乎可行,管你mysql能不能关掉,我把虚拟机停了就行啊。然后看了看自己电脑上装了1年多都没打开过的virtualbox,寻思着装在这里也不合适啊。我电脑硬盘就250G,就为了装个mysql还要给它分个十几G的硬盘,再分给它2G的……

      Docker配置PHP开发环境教程

      前言 笔者用的是mac开发,但是mac自带的php功能安装十分不方便,并且和线上的linux开发环境不一致。在没有用docker之前一直用vagrant配置的centos的php开发环境,但是自从有了docker之后,就不再用vagrant了。 配置自己的php镜像 首先在自己的任意一个目录下创建如下三个文件 run.sh #!/bin/bash/usr/sbin/php-fpm7.0/usr/sbin/nginxtailf /etc/apt/sources.list sources.list # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by soft……

      安装docker和docker-compose实例详解

      1.卸载旧版本Docker sudo yum remove docker docker-common docker-selinux docker-engine 2.执行以下命令安装依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 3.鉴于国内网络问题,强烈建议使用国内源执行下面的命令添加 yum 软件源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4.安装Docker CE sudo yum -y install docker-ce 5.设置开机启动 Docker CE sudo systemctl enable dockersudo systemctl start docker 6.鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速 sudo vi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"]} 7.重启生效 sudo systemctl daemon-reloadsudo systemctl re……

      laradock环境docker-compose操作详解

      以下所有命令需要在命令行模式下laradock文件夹下运行 开启nginx docker-compose up -d nginx 停止nginx docker-compose stop nginx 停止所有正在运行的容器,但不删除容器 docker-compose stop 停止,并删除正在运行的容器 docker-compose down 查看已存在或者正在运行的容器 docker-compose ps 进入nginx中,并到达bash命令交互界面 docker-compose exec nginx bash 查看nginx的日志 docker-compose logs nginx 持续查看nginx日志,有日志就输出,没日志就等着 docker-compose logs -f nginx 删除所有容器 docker rm `docker ps -a -q` 删除所有镜像 docker rmi `docker images -q` 删除docker-compose认为所有不使用的镜像 docker image prune 删除所有已存在的镜像 docker image prune --force --all或者……

      以上就是本次介绍的Docker电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:大数据技术前沿

      下一篇:测试架构师修炼之道

      展开 +

      收起 -

      下载地址:百度网盘下载
      Docker相关电子书
      Docker实战
      Docker实战 高清版

      自从2013 年3 月Docker 0.1 版本发布以来,以其为代表的容器技术也走上了快速发展之路,Docker容器在很大程度上改变了软件的架构设计、开发和运维部署方式,也给早些年就提出微服务的架构模

      立即下载
      Docker容器技术与应用
      Docker容器技术与应用 完整影印版

      这本书从Docker的基本使用入手,讲解了Docker的构建、操作、技术原理和实际使用过程中的典型项目和案例,内容较全面,适合学习Docker技术的学生及技术人员

      立即下载
      Swarm容器编排与Docker原生集群
      Swarm容器编排与Docker原生集群 影印版

      本书涵盖了Swarm中的发现、调度、高可用、安全和平台伸缩性等重要主题,能帮助你了解Swarm如何组建包含4700个节点的集群,并掌握Swarm的使用与管理,以及如何使用实现大规模应用的可伸缩

      立即下载
      Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署
      Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署 扫描版

      本书是世界闻名的Linux畅销书作者Christopher Negus力作!Linux系统或云环境上运行Docker的实用指南,面讲解创建、运行、停止、启动、保存和管理容器的具体方法

      立即下载
      Kubernetes权威指南:从Docker到Kubernetes实践全接触(纪念版)
      Kubernetes权威指南:从Docker到Kubernetes实践全接触(纪念版) 完整扫描版 立即下载
      容器云运维实战:Docker与Kubernetes集群
      容器云运维实战:Docker与Kubernetes集群 影印版 立即下载
      高性能Docker
      高性能Docker 高清版

      《高性能Docker》 共分8 章,旨在帮助读者改善其Docker 工作流,并保证应用在生产环境中顺利进行。 《高性能Docker》中简单回顾了Docker 是如何工作的。除了Docker 的基础知识外,读者还会学到如

      立即下载
      Node.js实战:使用Egg.js+Vue.js+Docker构建渐进式、可持续集成与交付应用
      Node.js实战:使用Egg.js+Vue.js+Docker构建渐进式、可持续集成与交付应用 影印版 立即下载
      读者留言
      萧博超

      萧博超 提供上传

      资源
      40
      粉丝
      48
      喜欢
      195
      评论
      17

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com