没什么难的Docker入门与开发实战

没什么难的Docker入门与开发实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-06
版次: 1
ISBN: 9787121314278
定价: 69.00
装帧: 其他
开本: 16开
纸张: 胶版纸
10人买过
  • 作为引领近几年容器虚拟化领域的技术,Docker的发展方兴未艾。但由于其出现不过数年,关于它的资料,特别是中文资料仍然相对匮乏,导致国内许多开发者对其感到陌生。本书正是以布道Docker为理念,由浅入深地从阐述Docker的基本概念、讲解常规使用方法、进行操作实践的演示、展示提高和进阶用法、剖析内部原理和底层架构等多个方面,全方面的展现Docker所具有的魅力。本书由概念及至实践,从不同方面向读者展现了Docker,实用性非常强,既可以作为一本学习Docker的入门教材,也能作为进行Docker操作实践的说明书,甚至可以作为提高和进阶的知识宝库。不论是对Docker认知程度不同,有着不同知识储备的人,还是处于程序软件研发部署流程中的开发人员、测试人员或运维人员,本书都有着很强的可阅读性。 熊昌隆,资深架构师,Web全栈开发者,知名博主,Beaver框架作者,开源小组Funcuter的发起者,致力于新兴技术的研究和推广。早年参与智慧路由的研究,多项研究成果影响了家用路由器的发展。设计实现的Beaver框架,已经应用于千万级系统的底层程序架构中。发起组建的Funcuter开源小组,旨在聚集国内的优秀开源项目和开发者,目前已经拥有多个开源项目。近年来一直致力于前沿技术的研究和推广,希望让更多的开发者更轻松的接触、了解*兴科技成果,并应用于开发实践中。 目  录

    第一部分  基础篇

    第1章  初识Docker1

    1.1  虚拟化2

    1.1.1  虚拟化技术2

    1.1.2  虚拟化的分类4

    1.2  容器技术与Docker6

    1.2.1  容器技术6

    1.2.2  Docker简介8

    1.2.3  改变世界的发明10

    1.3  Docker的安装10

    1.3.1  在Ubuntu中安装Docker11

    1.3.2  在CentOS中安装Docker12

    1.3.3  在Windows中安装Docker13

    1.3.4  在Mac OS中安装Docker15

    1.3.5  在其他系统中安装Docker16

    1.4  Docker的优势17

    1.4.1  革命性的虚拟化方案17

    1.4.2  高效的容器技术18

    1.4.3  社区的力量19

    1.5  Docker的应用场景20

    1.5.1  超短时间部署运行20

    1.5.2  节约迁移时间21

    1.6  本章小结21

    第2章  镜像与仓库22

    2.1  镜像的概念22

    2.1.1  联合文件系统22

    2.1.2  Docker中的镜像23

    2.1.3  镜像的分层结构24

    2.1.4  镜像的写时复制25

    2.2  使用和管理镜像26

    2.2.1  获取镜像26

    2.2.2  列出镜像28

    2.2.3  获得镜像的详细信息28

    2.2.4  删除镜像31

    2.2.5  镜像的迁移32

    2.3  Docker Hub33

    2.3.1  镜像仓库33

    2.3.2  Docker Hub34

    2.3.3  注册Docker Hub账号35

    2.3.4  搜索镜像36

    2.3.5  共享自动构建镜像38

    2.4  搭建私有仓库40

    2.4.1  镜像分发服务40

    2.4.2  Docker Registry HTTP API41

    2.4.3  部署私有仓库42

    2.5  本章小结44

    第3章  管理和使用容器45

    3.1  管理容器45

    3.1.1  创建容器45

    3.1.2  容器的启动过程48

    3.1.3  列出容器49

    3.1.4  容器的命名51

    3.1.5  启动和停止52

    3.1.6  暂停和恢复53

    3.1.7  重启容器54

    3.1.8  删除容器55

    3.2  连接到容器55

    3.2.1  查看进程信息56

    3.2.2  查看容器信息56

    3.2.3  容器日志62

    3.2.4  衔接到容器63

    3.2.5  在容器中执行命令64

    3.3  容器的保存与迁移65

    3.3.1  提交容器更改65

    3.3.2  容器的导入/导出68

    3.4  本章小结70

    第4章  数据卷与网络71

    4.1  数据卷71

    4.1.1  关于数据卷71

    4.1.2  数据卷的特点72

    4.1.3  创建数据卷73

    4.1.4  挂载数据卷74

    4.1.5  删除数据卷76

    4.2  数据卷容器77

    4.2.1  关于数据卷容器77

    4.2.2  创建数据卷容器78

    4.2.3  连接数据卷容器79

    4.2.4  数据卷的迁移80

    4.3  网络基础82

    4.3.1  网络简介82

    4.3.2  查看网络配置83

    4.4  网络访问85

    4.4.1  宿主机端口映射85

    4.4.2  容器连接87

    4.5  本章小结90

    第5章  制作镜像91

    5.1  了解Dockerfile91

    5.1.1  Dockerfile简介92

    5.1.2  使用Dockerfile创建镜像94

    5.2  基础指令96

    5.2.1  FROM97

    5.2.2  MAINTAINER97

    5.3  控制指令97

    5.3.1  RUN97

    5.3.2  WORKDIR99

    5.3.3  ONBUILD99

    5.4  引入指令100

    5.4.1  ADD100

    5.4.2  COPY102

    5.5  执行指令102

    5.5.1  CMD102

    5.5.2  ENTRYPOINT104

    5.6  配置指令107

    5.6.1  EXPOSE108

    5.6.2  ENV108

    5.6.3  LABEL109

    5.6.4  USER110

    5.6.5  ARG111

    5.6.6  STOPSIGNAL112

    5.6.7  SHELL113

    5.7  特殊用法113

    5.7.1  环境变量113

    5.7.2  指令解析114

    5.7.3  忽略文件116

    5.8  本章小结117

    第二部分  实践篇

    第6章  SSH服务118

    6.1  在Docker中使用SSH118

    6.1.1  SSH简介119

    6.1.2  SSH使用方法简介119

    6.1.3  数据卷管理容器121

    6.1.4  使用SSH服务容器122

    6.2  构建SSH服务镜像124

    6.2.1  构建方式比较124

    6.2.2  通过提交构建125

    6.2.3  使用Dockerfile构建127

    6.3  本章小结131

    第7章  Web服务器132

    7.1  Web服务简介132

    7.1.1  万维网与网站132

    7.1.2  Web服务133

    7.1.3  Web服务程序135

    7.2  Apache135

    7.2.1  Apache简介135

    7.2.2  安装Apache136

    7.2.3  构建Apache镜像139

    7.2.4  测试Apache容器142

    7.3  Nginx143

    7.3.1  关于Nginx143

    7.3.2  安装Nginx144

    7.3.3  构建Nginx镜像146

    7.3.4  测试Nginx镜像148

    7.4  Tomcat148

    7.4.1  Tomcat简介149

    7.4.2  安装Tomcat149

    7.4.3  构建Tomcat镜像152

    7.5  本章小结153

    第8章  数据库程序155

    8.1  MySQL155

    8.1.1  MySQL简介156

    8.1.2  安装MySQL156

    8.1.3  构建MySQL镜像162

    8.1.4  测试MySQL容器164

    8.2  MongoDB166

    8.2.1  MongoDB简介166

    8.2.2  安装MongoDB167

    8.2.3  构建MongoDB镜像171

    8.2.4  测试MongoDB容器173

    8.3  本章小结176

    第9章  缓存工具177

    9.1  Memcached178

    9.1.1  Memcached简介178

    9.1.2  安装Memcached179

    9.1.3  构建Memcached镜像184

    9.1.4  测试Memcached容器186

    9.2  Redis188

    9.2.1  Redis简介188

    9.2.2  安装Redis188

    9.2.3  构建Redis镜像193

    9.2.4  测试Redis容器195

    9.3  本章小结196

    第10章  动态处理程序197

    10.1  Java197

    10.1.1  Java简介198

    10.1.2  安装Java198

    10.1.3  构建Java镜像204

    10.1.4  测试Java容器206

    10.2  PHP207

    10.2.1  PHP简介207

    10.2.2  安装PHP208

    10.2.3  构建PHP镜像214

    10.2.4  测试PHP容器216

    10.3  Python217

    10.3.1  Python简介217

    10.3.2  安装Python218

    10.3.3  构建Python镜像223

    10.3.4  测试Python容器224

    10.4  Node.js225

    10.4.1  Node.js简介225

    10.4.2  安装Node.js226

    10.4.3  构建Node.js镜像228

    10.4.4  测试Node.js容器230

    10.5  本章小结231

    第11章  综合演练232

    11.1  演练目标232

    11.1.1  目标概述232

    11.1.2  代码编写233

    11.2  环境搭建237

    11.2.1  准备镜像237

    11.2.2  程序配置239

    11.3  项目运行248

    11.3.1  启动容器248

    11.3.2  测试项目249

    11.4  本章小结253

    第三部分  提高篇

    第12章  网络进阶254

    12.1  网络实现254

    12.1.1  容器网络基础255

    12.1.2  网络模型257

    12.2  Docker中的网络258

    12.2.1  默认网络258

    12.2.2  自定义网络261

    12.2.3  容器与外部通信262

    12.2.4  容器间通信264

    12.3  网络实践265

    12.3.1  管理容器网络265

    12.3.2  容器连接网络267

    12.3.3  配置docker0网桥269

    12.3.4  自定义网桥271

    12.3.5  配置DNS271

    12.3.6  使用IPv6273

    12.4  本章小结274

    第13章  安全加固275

    13.1  深入理解Docker安全275

    13.1.1  命名空间隔离276

    13.1.2  资源控制组277

    13.1.3  内核能力机制277

    13.2  资源使用限制278

    13.2.1  通过控制组限制278

    13.2.2  通过ulimit限制280

    13.2.3  网络访问限制280

    13.3  校验与监控281

    13.3.1  镜像签名281

    13.3.2  运行状态监控283

    13.4  联级防护284

    13.4.1  组合虚拟化284

    13.4.2  文件系统安全284

    13.5  内核安全技术285

    13.5.1  Capability286

    13.5.2  SELinux287

    13.5.3  AppArmor288

    13.6  本章小结289

    第14章  Docker API290

    14.1  关于Docker API290

    14.1.1  通用操作接口290

    14.1.2  关于RESTful291

    14.1.3  Docker API的优势292

    14.1.4  Docker API的分类293

    14.2  使用Docker Remote API293

    14.2.1  关于Docker Remote API294

    14.2.2  Docker Remote API的版本299

    14.2.3  通过Remote API列出容器300

    14.2.4  通过Remote API列出镜像302

    14.3  使用Docker Registry API303

    14.3.1  关于Docker Registry API304

    14.3.2  Docker Registry API的主要功能304

    14.3.3  Docker Registry API的版本305

    14.3.4  通过Registry API拉取镜像306

    14.3.5  通过Registry API推送镜像307

    14.4  本章小结309

    第15章  管理工具310

    15.1  Docker Compose310

    15.1.1  Docker Compose简介311

    15.1.2  安装Docker Compose313

    15.1.3  Docker Compose配置文件314

    15.1.4  常用的Docker Compose命令315

    15.2  Docker Machine318

    15.2.1  Docker Machine简介318

    15.2.2  安装Docker Machine320

    15.2.3  Docker Machine常见命令321

    15.3  Docker Swarm322

    15.3.1  Docker Swarm简介322

    15.3.2  Docker Swarm结构323

    15.3.3  使用Docker Swarm323

    15.3.4  Docker Swarm常见命令325

    15.4  本章小结327

    第16章  Docker的技术架构328

    16.1  命名空间328

    16.1.1  关于Linux命名空间328

    16.1.2  命名空间的系统调用329

    16.1.3  命名空间的分类330

    16.2  控制组332

    16.2.1  关于Linux控制组332

    16.2.2  Cgroups的组成333

    16.2.3  容器与控制组334

    16.3  联合文件系统336

    16.3.1  关于UFS336

    16.3.2  Docker中的UFS337

    16.4  Docker Engine架构338

    16.4.1  Docker Engine的组成结构338

    16.4.2  Docker Daemon339

    16.4.3  Docker CLI342

    16.5  本章小结344
  • 内容简介:
    作为引领近几年容器虚拟化领域的技术,Docker的发展方兴未艾。但由于其出现不过数年,关于它的资料,特别是中文资料仍然相对匮乏,导致国内许多开发者对其感到陌生。本书正是以布道Docker为理念,由浅入深地从阐述Docker的基本概念、讲解常规使用方法、进行操作实践的演示、展示提高和进阶用法、剖析内部原理和底层架构等多个方面,全方面的展现Docker所具有的魅力。本书由概念及至实践,从不同方面向读者展现了Docker,实用性非常强,既可以作为一本学习Docker的入门教材,也能作为进行Docker操作实践的说明书,甚至可以作为提高和进阶的知识宝库。不论是对Docker认知程度不同,有着不同知识储备的人,还是处于程序软件研发部署流程中的开发人员、测试人员或运维人员,本书都有着很强的可阅读性。
  • 作者简介:
    熊昌隆,资深架构师,Web全栈开发者,知名博主,Beaver框架作者,开源小组Funcuter的发起者,致力于新兴技术的研究和推广。早年参与智慧路由的研究,多项研究成果影响了家用路由器的发展。设计实现的Beaver框架,已经应用于千万级系统的底层程序架构中。发起组建的Funcuter开源小组,旨在聚集国内的优秀开源项目和开发者,目前已经拥有多个开源项目。近年来一直致力于前沿技术的研究和推广,希望让更多的开发者更轻松的接触、了解*兴科技成果,并应用于开发实践中。
  • 目录:
    目  录

    第一部分  基础篇

    第1章  初识Docker1

    1.1  虚拟化2

    1.1.1  虚拟化技术2

    1.1.2  虚拟化的分类4

    1.2  容器技术与Docker6

    1.2.1  容器技术6

    1.2.2  Docker简介8

    1.2.3  改变世界的发明10

    1.3  Docker的安装10

    1.3.1  在Ubuntu中安装Docker11

    1.3.2  在CentOS中安装Docker12

    1.3.3  在Windows中安装Docker13

    1.3.4  在Mac OS中安装Docker15

    1.3.5  在其他系统中安装Docker16

    1.4  Docker的优势17

    1.4.1  革命性的虚拟化方案17

    1.4.2  高效的容器技术18

    1.4.3  社区的力量19

    1.5  Docker的应用场景20

    1.5.1  超短时间部署运行20

    1.5.2  节约迁移时间21

    1.6  本章小结21

    第2章  镜像与仓库22

    2.1  镜像的概念22

    2.1.1  联合文件系统22

    2.1.2  Docker中的镜像23

    2.1.3  镜像的分层结构24

    2.1.4  镜像的写时复制25

    2.2  使用和管理镜像26

    2.2.1  获取镜像26

    2.2.2  列出镜像28

    2.2.3  获得镜像的详细信息28

    2.2.4  删除镜像31

    2.2.5  镜像的迁移32

    2.3  Docker Hub33

    2.3.1  镜像仓库33

    2.3.2  Docker Hub34

    2.3.3  注册Docker Hub账号35

    2.3.4  搜索镜像36

    2.3.5  共享自动构建镜像38

    2.4  搭建私有仓库40

    2.4.1  镜像分发服务40

    2.4.2  Docker Registry HTTP API41

    2.4.3  部署私有仓库42

    2.5  本章小结44

    第3章  管理和使用容器45

    3.1  管理容器45

    3.1.1  创建容器45

    3.1.2  容器的启动过程48

    3.1.3  列出容器49

    3.1.4  容器的命名51

    3.1.5  启动和停止52

    3.1.6  暂停和恢复53

    3.1.7  重启容器54

    3.1.8  删除容器55

    3.2  连接到容器55

    3.2.1  查看进程信息56

    3.2.2  查看容器信息56

    3.2.3  容器日志62

    3.2.4  衔接到容器63

    3.2.5  在容器中执行命令64

    3.3  容器的保存与迁移65

    3.3.1  提交容器更改65

    3.3.2  容器的导入/导出68

    3.4  本章小结70

    第4章  数据卷与网络71

    4.1  数据卷71

    4.1.1  关于数据卷71

    4.1.2  数据卷的特点72

    4.1.3  创建数据卷73

    4.1.4  挂载数据卷74

    4.1.5  删除数据卷76

    4.2  数据卷容器77

    4.2.1  关于数据卷容器77

    4.2.2  创建数据卷容器78

    4.2.3  连接数据卷容器79

    4.2.4  数据卷的迁移80

    4.3  网络基础82

    4.3.1  网络简介82

    4.3.2  查看网络配置83

    4.4  网络访问85

    4.4.1  宿主机端口映射85

    4.4.2  容器连接87

    4.5  本章小结90

    第5章  制作镜像91

    5.1  了解Dockerfile91

    5.1.1  Dockerfile简介92

    5.1.2  使用Dockerfile创建镜像94

    5.2  基础指令96

    5.2.1  FROM97

    5.2.2  MAINTAINER97

    5.3  控制指令97

    5.3.1  RUN97

    5.3.2  WORKDIR99

    5.3.3  ONBUILD99

    5.4  引入指令100

    5.4.1  ADD100

    5.4.2  COPY102

    5.5  执行指令102

    5.5.1  CMD102

    5.5.2  ENTRYPOINT104

    5.6  配置指令107

    5.6.1  EXPOSE108

    5.6.2  ENV108

    5.6.3  LABEL109

    5.6.4  USER110

    5.6.5  ARG111

    5.6.6  STOPSIGNAL112

    5.6.7  SHELL113

    5.7  特殊用法113

    5.7.1  环境变量113

    5.7.2  指令解析114

    5.7.3  忽略文件116

    5.8  本章小结117

    第二部分  实践篇

    第6章  SSH服务118

    6.1  在Docker中使用SSH118

    6.1.1  SSH简介119

    6.1.2  SSH使用方法简介119

    6.1.3  数据卷管理容器121

    6.1.4  使用SSH服务容器122

    6.2  构建SSH服务镜像124

    6.2.1  构建方式比较124

    6.2.2  通过提交构建125

    6.2.3  使用Dockerfile构建127

    6.3  本章小结131

    第7章  Web服务器132

    7.1  Web服务简介132

    7.1.1  万维网与网站132

    7.1.2  Web服务133

    7.1.3  Web服务程序135

    7.2  Apache135

    7.2.1  Apache简介135

    7.2.2  安装Apache136

    7.2.3  构建Apache镜像139

    7.2.4  测试Apache容器142

    7.3  Nginx143

    7.3.1  关于Nginx143

    7.3.2  安装Nginx144

    7.3.3  构建Nginx镜像146

    7.3.4  测试Nginx镜像148

    7.4  Tomcat148

    7.4.1  Tomcat简介149

    7.4.2  安装Tomcat149

    7.4.3  构建Tomcat镜像152

    7.5  本章小结153

    第8章  数据库程序155

    8.1  MySQL155

    8.1.1  MySQL简介156

    8.1.2  安装MySQL156

    8.1.3  构建MySQL镜像162

    8.1.4  测试MySQL容器164

    8.2  MongoDB166

    8.2.1  MongoDB简介166

    8.2.2  安装MongoDB167

    8.2.3  构建MongoDB镜像171

    8.2.4  测试MongoDB容器173

    8.3  本章小结176

    第9章  缓存工具177

    9.1  Memcached178

    9.1.1  Memcached简介178

    9.1.2  安装Memcached179

    9.1.3  构建Memcached镜像184

    9.1.4  测试Memcached容器186

    9.2  Redis188

    9.2.1  Redis简介188

    9.2.2  安装Redis188

    9.2.3  构建Redis镜像193

    9.2.4  测试Redis容器195

    9.3  本章小结196

    第10章  动态处理程序197

    10.1  Java197

    10.1.1  Java简介198

    10.1.2  安装Java198

    10.1.3  构建Java镜像204

    10.1.4  测试Java容器206

    10.2  PHP207

    10.2.1  PHP简介207

    10.2.2  安装PHP208

    10.2.3  构建PHP镜像214

    10.2.4  测试PHP容器216

    10.3  Python217

    10.3.1  Python简介217

    10.3.2  安装Python218

    10.3.3  构建Python镜像223

    10.3.4  测试Python容器224

    10.4  Node.js225

    10.4.1  Node.js简介225

    10.4.2  安装Node.js226

    10.4.3  构建Node.js镜像228

    10.4.4  测试Node.js容器230

    10.5  本章小结231

    第11章  综合演练232

    11.1  演练目标232

    11.1.1  目标概述232

    11.1.2  代码编写233

    11.2  环境搭建237

    11.2.1  准备镜像237

    11.2.2  程序配置239

    11.3  项目运行248

    11.3.1  启动容器248

    11.3.2  测试项目249

    11.4  本章小结253

    第三部分  提高篇

    第12章  网络进阶254

    12.1  网络实现254

    12.1.1  容器网络基础255

    12.1.2  网络模型257

    12.2  Docker中的网络258

    12.2.1  默认网络258

    12.2.2  自定义网络261

    12.2.3  容器与外部通信262

    12.2.4  容器间通信264

    12.3  网络实践265

    12.3.1  管理容器网络265

    12.3.2  容器连接网络267

    12.3.3  配置docker0网桥269

    12.3.4  自定义网桥271

    12.3.5  配置DNS271

    12.3.6  使用IPv6273

    12.4  本章小结274

    第13章  安全加固275

    13.1  深入理解Docker安全275

    13.1.1  命名空间隔离276

    13.1.2  资源控制组277

    13.1.3  内核能力机制277

    13.2  资源使用限制278

    13.2.1  通过控制组限制278

    13.2.2  通过ulimit限制280

    13.2.3  网络访问限制280

    13.3  校验与监控281

    13.3.1  镜像签名281

    13.3.2  运行状态监控283

    13.4  联级防护284

    13.4.1  组合虚拟化284

    13.4.2  文件系统安全284

    13.5  内核安全技术285

    13.5.1  Capability286

    13.5.2  SELinux287

    13.5.3  AppArmor288

    13.6  本章小结289

    第14章  Docker API290

    14.1  关于Docker API290

    14.1.1  通用操作接口290

    14.1.2  关于RESTful291

    14.1.3  Docker API的优势292

    14.1.4  Docker API的分类293

    14.2  使用Docker Remote API293

    14.2.1  关于Docker Remote API294

    14.2.2  Docker Remote API的版本299

    14.2.3  通过Remote API列出容器300

    14.2.4  通过Remote API列出镜像302

    14.3  使用Docker Registry API303

    14.3.1  关于Docker Registry API304

    14.3.2  Docker Registry API的主要功能304

    14.3.3  Docker Registry API的版本305

    14.3.4  通过Registry API拉取镜像306

    14.3.5  通过Registry API推送镜像307

    14.4  本章小结309

    第15章  管理工具310

    15.1  Docker Compose310

    15.1.1  Docker Compose简介311

    15.1.2  安装Docker Compose313

    15.1.3  Docker Compose配置文件314

    15.1.4  常用的Docker Compose命令315

    15.2  Docker Machine318

    15.2.1  Docker Machine简介318

    15.2.2  安装Docker Machine320

    15.2.3  Docker Machine常见命令321

    15.3  Docker Swarm322

    15.3.1  Docker Swarm简介322

    15.3.2  Docker Swarm结构323

    15.3.3  使用Docker Swarm323

    15.3.4  Docker Swarm常见命令325

    15.4  本章小结327

    第16章  Docker的技术架构328

    16.1  命名空间328

    16.1.1  关于Linux命名空间328

    16.1.2  命名空间的系统调用329

    16.1.3  命名空间的分类330

    16.2  控制组332

    16.2.1  关于Linux控制组332

    16.2.2  Cgroups的组成333

    16.2.3  容器与控制组334

    16.3  联合文件系统336

    16.3.1  关于UFS336

    16.3.2  Docker中的UFS337

    16.4  Docker Engine架构338

    16.4.1  Docker Engine的组成结构338

    16.4.2  Docker Daemon339

    16.4.3  Docker CLI342

    16.5  本章小结344
查看详情