Docker基础与实战

Docker基础与实战 pdf epub mobi txt 电子书 下载 2025

[韩] 李在弘 著,武传海 译
图书标签:
  • Docker
  • 容器化
  • DevOps
  • 微服务
  • Linux
  • 云计算
  • 应用部署
  • 持续集成
  • 自动化
  • 开发运维
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115419620
版次:1
商品编码:11969172
包装:平装
丛书名: 图灵程序设计丛书
开本:16开
出版时间:2016-06-01
用纸:胶版纸
页数:302
正文语种:中文

具体描述

编辑推荐

快速掌握Docker容器,打造面向开发者与运营者的部署系统,轻松应对技术冲击。
应用部署系统,实现“一次构建,处处运行”。
构建无虚拟机负荷的轻量级虚拟环境,不受约束实现快速处理。

内容简介

本书从Docker基础理论出发,更侧重实际业务中的技术与应用。重点在于后半部分在、Google Colud Platform等平台上的使用方法,以及Rails与Django应用程序构建方法等,都是能够直接运用于实操的技术点。本书是利用Docker构建开发系统、测试系统、操作系统的杰出指南,非常适合一线开发人员。

作者简介

李在弘
目前管理PYRASIS.COM个人网站,编写并发布了多种技术文档。曾在NC Software参与开发游戏《天堂永恒》(Lineage Eternal),并在Ntreev开发移动游戏服务器,还曾负责FFS File System Driver for Windows开源项目。近期正在研究Cocos2d-x移动游戏引擎的Tizen应用,现在主要关注操作系统内核、文件系统、软件开发自动化、游戏引擎、云平台、分布式处理系统。梦想打造个性化的全自动家居,以及设立开源基金会。
主要著作 《Windows项目必读实用工具:Subversion, Trac, CruiseControl.NET》  

目录

目录

第1 章 Docker 1
1.1 虚拟机与Docker 3
1.1.1 虚拟机 4
1.1.2 Docker 5
1.1.3 Linux 容器 6
1.2 Docker 镜像与容器 8
第2 章 安装Docker 11
2.1 Linux 11
2.1.1 自动安装脚本 11
2.1.2 Ubuntu 11
2.1.3 RedHat Enterprise Linux、CentOS 12
2.1.4 使用最新二进制文件 12
2.2 Mac OS X 13
2.3 Windows 16
第3 章 使用Docker 23
3.1 使用search 命令搜索镜像 23
3.2 使用pull 命令下载镜像 25
3.3 使用images 命令列出镜像目录 25
3.4 使用run 命令创建容器 25
3.5 使用ps 命令查看容器列表 26
3.6 使用start 命令启动容器 26
3.7 使用restart 命令重启容器 27
3.8 使用attach 命令连接容器 27
3.9 使用exec 命令从外部运行容器内的命令 27
3.10 使用stop 命令终止容器 28
3.11 使用rm 命令删除容器 28
3.12 使用rmi 命令删除镜像 29
第4 章 创建Docker 镜像 31
4.1 熟悉Bash 31
目录
4.2 编写Dockerfile 36
4.3 使用build 命令创建镜像 37
第5 章 查看Docker 39
5.1 使用history 命令查看镜像历史 39
5.2 使用cp 命令复制文件 40
5.3 使用commit 命令从容器的修改中创建镜像 40
5.4 使用diff 命令检查容器文件的修改 40
5.5 使用inspect 命令查看详细信息 41
第6 章 灵活使用Docker 43
6.1 搭建Docker 私有仓库 43
6.1.1 存储镜像数据到本地 43
6.1.2 使用push 命令上传镜像 44
6.1.3 存储镜像数据到Amazon S3 45
6.1.4 使用默认认证 46
6.2 连接Docker 的容器 52
6.3 连接到其他服务器的Docker 容器 53
6.4 使用Docker 数据卷 56
6.5 使用Docker 数据卷容器 59
6.6 创建Docker 基础镜像 60
6.6.1 创建Ubuntu 基础镜像 60
6.6.2 创建CentOS 基础镜像 61
6.6.3 创建空基础镜像 62
6.7 在Docker 内运行Docker 64
第7 章 详细了解Dockerfile 67
7.1 .dockerignore 68
7.2 FROM 68
7.3 MAINTAINER 69
7.4 RUN 69
7.5 CMD 70
7.6 ENTRYPOINT 71
7.7 EXPOSE 73
7.8 ENV 73
7.9 ADD 74
7.10 COPY 76
7.11 VOLUME 77
7.12 USER 77
7.13 WORKDIR 78
7.14 ONBUILD 79
第8 章 使用Docker 部署应用程序 81
8.1 向一台服务器部署应用程序 81
8.1.1 在开发者PC 安装Git 并创建仓库 82
8.1.2 在开发者PC 中使用Node.js 编写Web 服务器 83
8.1.3 在开发者PC 中编写Dockerfile 文件 84
8.1.4 在开发者PC 中生成SSH 密钥 85
8.1.5 在服务器端安装Git 并创建仓库 86
8.1.6 在服务器中安装Docker 87
8.1.7 在服务器中安装SSH 密钥 88
8.1.8 在服务器中安装Git Hook 89
8.1.9 在开发者PC 中推送源代码 90
8.2 向多台服务器部署应用程序 91
8.2.1 在开发者PC 安装Git 并创建仓库 92
8.2.2 在开发者PC 中使用Node.js 编写Web 服务器 93
8.2.3 在开发者PC 中编写Dockerfile 文件 94
8.2.4 在开发者PC 中生成SSH 密钥 95
8.2.5 在部署服务器安装Git 并创建仓库 96
8.2.6 在部署服务器中生成SSH 密钥 97
8.2.7 在部署服务器中安装Docker 98
8.2.8 在部署服务器中安装Docker 注册服务器 99
8.2.9 在部署服务器中安装SSH 密钥 100
8.2.10 在部署服务器中安装Git Hook 101
8.2.11 在应用程序服务器中安装Docker 103
8.2.12 在应用程序服务器中安装SSH 密钥 104
8.2.13 在开发者PC 中推送源代码 105
第9 章 Docker 监控 107
9.1 编写监控服务器Dockerfile 108
9.2 编写应用程序服务器Dockerfile 111
9.3 在Web 浏览器中查看图表 114
第10 章 在Amazon Web Services 中使用Docker 117
10.1 在Amazon EC2 中使用Docker 117
10.2 在AWS Elastic Beanstalk 中使用Docker 119
10.2.1 在AWS 控制台部署Docker 应用程序 119
10.2.2 使用Docker Hub 公开仓库镜像 129
10.2.3 使用Docker Hub 私有仓库的镜像 131
10.2.4 使用Git 部署Elastic Beanstalk Docker 应用程序 139
第11 章 在Google Cloud Platform 中使用Docker 145
11.1 安装Goolge Cloud SDK 145
11.2 在Compute Engine 中使用Docker 147
11.3 在Container Engine 中使用Docker 148
第12 章 使用Docker Hub 151
12.1 加入Docker Hub 151
12.2 使用push 命令上传镜像 153
12.3 创建Docker Hub 私有仓库 155
12.4 使用Docker Hub Automated Build 157
第13 章 使用Docker Remote API 167
13.1 使用Docker Remote API Python 库 169
13.1.1 创建并启动容器 169
13.1.2 创建镜像 173
13.1.3 显示容器列表 175
13.1.4 显示镜像列表 176
13.1.5 其他示例与函数 176
13.2 使用Docker Remote API Python 库进行HTTPS 通信 187
13.2.1 创建证书 187
13.2.2 使用Python 库 191
第14 章 使用CoreOS 193
14.1 在VirtualBox 中安装CoreOS 196
使用systemd 运行服务 205
14.2 使用Vagrant 安装CoreOS 206
14.3 使用etcd 211
14.3.1 创建etcd 键与目录 211
14.3.2 输出etcd 键与目录列表 212
14.3.3 设置自动删除etcd 键与目录 212
14.3.4 监视etcd 键 213
14.3.5 etcd 其他命令 214
14.4 使用fleet 214
14.4.1 输出fleet 机器列表 215
14.4.2 使用fleet 运行Unit 215
14.4.3 输出fleet Unit 列表 217
14.4.4 查看fleet Unit 状态 217
14.4.5 测试fleet 的自动恢复功能 218
14.4.6 使用fleet 专用选项 219
14.4.7 灵活使用fleet Unit 文件模板 222
14.4.8 灵活使用fleet sidekick 模型 224
14.4.9 fleet 其他命令 227
14.5 在云服务中使用CoreOS 227
14.5.1 在Amazon EC2 中使用CoreOS 227
14.5.2 在Google Compute Engine 中使用CoreOS 229
第15 章 使用Docker 搭建WordPress 博客 231
15.1 编写WordPress Dockerfile 文件 232
15.2 编写MySQL 数据库Dockerfile 文件 233
15.3 创建WordPress 与数据库容器 236
第16 章 使用Docker 构建Ruby on Rails 应用 237
16.1 安装Ruby 与Rails 238
16.2 编写Rails Dockerfile 240
16.3 编写PostgreSQL 数据库Dockerfile 文件 245
16.4 创建Rails 与数据库容器 247
第17 章 使用Docker 构建Django 应用 249
17.1 安装Django 250
17.2 编写Django Dockerfile 文件 253
17.3 编写Oracle 数据库Dockerfile 文件 258
17.4 创建Django 与数据库容器 261
第18 章 Docker 应用案例 263
18.1 与负载平衡相关的自动伸缩 263
18.2 整合开发、测试、运营 264
18.3 轻松迁移服务 265
18.4 用于测试 267
第19 章 Docker 命令与选项列表 269
19.1 attach 270
19.2 build 271
19.3 Commit 273
19.4 cp 273
19.5 create 274
19.6 diff 277
19.7 events 277
19.8 exec 278
19.9 export 280
19.10 history 280
19.11 images 281
19.12 import 281
19.13 info 282
19.14 inspect 283
19.15 kill 284
19.16 load 284
19.17 login 285
19.18 logout 286
19.19 logs 286
19.20 port 287
19.21 pause 287
19.22 ps 287
19.23 pull 288
19.24 push 289
19.25 restart 289
19.26 rm 289
19.27 rmi 290
19.28 run 291
19.29 save 296
19.30 search 297
19.31 start 297
19.32 stop 298
19.33 tag 298
19.34 top 299
19.35 unpause 299
19.36 version 300
19.37 wait 300
附录 编译Docker 301

前言/序言


《容器化之道:从零开始的现代应用部署》 在快速迭代和持续交付成为软件开发常态的今天,如何高效、稳定、可移植地部署和管理应用程序,是每一位开发者和运维工程师必须面对的核心挑战。传统的部署方式往往伴随着环境配置复杂、依赖冲突频发、迁移成本高昂等诸多痛点,严重制约了开发效率和业务的敏捷性。正是为了解决这些根深蒂固的问题,一种革命性的技术应运而生——容器化。 《容器化之道:从零开始的现代应用部署》并非一本关于特定工具的教程,而是一次深入探索容器化技术核心理念、设计哲学及其在现代化应用架构中扮演的关键角色的旅程。本书旨在为读者构建一个全面而深刻的理解框架,帮助您摆脱对单一工具的依赖,真正掌握容器化背后的原理,并能够灵活地将其应用于各种复杂的部署场景。 第一部分:理解容器化 — 核心概念与演进之路 在深入实践之前,我们首先需要理解“容器化”究竟是什么,以及它为何能解决传统部署难题。本部分将带您回顾软件部署的历史演变,从简单的脚本部署到虚拟机时代,再到容器技术的兴起。我们将详细解析容器的核心特征:轻量级、隔离性、可移植性、一致性。 为何需要容器? 深入剖析传统部署方式的痛点,例如“在我机器上可以运行”的尴尬、环境不一致导致的部署失败、资源浪费等,从而引出容器化作为解决方案的必然性。 容器与虚拟机:异同探析 详细对比容器和虚拟机的底层工作原理,重点解释容器如何共享宿主机内核,以及这种共享带来的效率提升和潜在的安全考量。理解它们在资源利用、启动速度、隔离级别等方面的差异,帮助您在不同场景下做出明智的技术选择。 容器化技术栈概览 介绍构成现代容器化生态的关键组件,如容器运行时(如containerd, CRI-O)、镜像构建工具(如Buildah)以及容器编排系统(如Kubernetes)。本书将聚焦于理解这些组件如何协同工作,而不是深入讲解某个特定工具的API。 容器化设计的哲学 探讨容器化所倡导的“一次构建,随处运行”的理念,以及它如何促进微服务架构、DevOps文化的落地。理解容器化背后的设计哲学,将帮助您更好地应用这项技术。 第二部分:构建可移植的应用 — 容器镜像的设计与管理 容器的核心在于其不可变的基础——镜像。一个优秀的镜像,是实现应用跨环境无缝迁移的关键。本部分将聚焦于如何设计、构建和管理高质量的容器镜像。 镜像的组成与原理 剖析容器镜像的分层结构,理解UnionFS/OverlayFS等文件系统的工作机制,以及为何分层能够实现高效的存储和分发。 编写高效的Dockerfile 深入探讨Dockerfile中各个指令的含义、最佳实践以及潜在的陷阱。我们将重点关注如何构建体积小、安全性高、可维护性强的镜像。例如,如何利用多阶段构建(multi-stage builds)来减小最终镜像的体积,如何选择合适的基线镜像,如何安全地处理敏感信息。 最小化镜像体积的艺术 探讨各种减小镜像体积的策略,包括使用更精简的基础镜像(如Alpine Linux)、清理不必要的依赖、优化文件复制等。 安全地构建镜像 讲解如何在构建过程中提升镜像的安全性,例如,避免在镜像中包含敏感信息、使用非root用户运行构建过程、定期扫描镜像中的漏洞等。 镜像的生命周期管理 讨论镜像的注册与分发,包括公共镜像仓库(如Docker Hub)和私有镜像仓库的使用,以及如何管理镜像的版本和生命周期。 第三部分:编排与调度 — 走向分布式容器管理 当应用规模增大,需要部署和管理成百上千个容器时,手动操作将变得不可行。容器编排系统应运而生,它们负责自动化容器的部署、扩展、联网和管理。本部分将深入理解容器编排的核心概念和工作原理,为构建大规模分布式系统奠定基础。 编排的挑战与必要性 分析在分布式环境中管理大量容器所面临的挑战,如服务发现、负载均衡、滚动更新、故障恢复等,以及为何需要专门的编排系统来解决这些问题。 声明式配置与期望状态 讲解容器编排系统中普遍采用的声明式配置模型,即用户只需定义期望的应用状态,系统会自动将其维持在该状态。理解这一核心理念对于使用任何编排工具都至关重要。 核心编排概念解析 深入探讨编排系统中的关键概念,如Pod(或Service)、ReplicaSet(或Deployment)、Service、Ingress、Volume等。本书将从概念层面解释这些资源的用途和相互关系。 服务发现与负载均衡 剖析容器编排系统如何实现服务之间的自动发现和负载均衡,以确保高可用性和可扩展性。 滚动更新与零宕机部署 讲解容器编排系统如何支持应用程序的平滑升级,实现滚动更新和零宕机部署,最大程度地减少对用户的影响。 持久化存储的管理 探讨在容器化环境中如何管理应用程序的持久化数据,包括理解Volume、PersistentVolume、StorageClass等概念,以及它们在数据生命周期管理中的作用。 第四部分:容器化网络的奥秘 网络是分布式系统的血脉。在容器化环境中,为容器提供高效、安全、灵活的网络连接是构建复杂应用的基石。本部分将深入探讨容器网络的设计和实现。 容器网络模型基础 讲解Linux网络命名空间、虚拟网桥(veth pair)、Linux Bridge等底层技术,这些技术是容器网络隔离和连接的基础。 CNI(Container Network Interface) 介绍CNI作为容器运行时与网络插件之间的标准接口,以及它如何促进容器网络插件生态的繁荣。 容器网络插件的功能与类型 探讨不同类型的容器网络插件(如Overlay网络、路由网络),以及它们如何解决跨主机通信、IP地址管理、网络策略等问题。 网络策略与安全隔离 讲解如何通过网络策略来控制容器之间的访问权限,实现细粒度的网络安全隔离,防止未授权的访问。 服务网格(Service Mesh)的引入 简要介绍服务网格的概念,以及它如何为微服务架构提供更高级别的通信控制、可观察性和安全性。 第五部分:容器化生态与未来趋势 容器化技术仍在快速发展,并不断演进,形成了庞大而活跃的生态系统。本部分将带领读者展望容器化技术的未来,以及其在更广阔的领域中的应用。 DevOps与容器化 深入分析容器化技术如何成为DevOps实践的催化剂,促进开发、测试、部署、运维各个环节的自动化和协作。 云原生(Cloud Native)架构 探讨容器化与云原生理念的紧密联系,以及它们如何共同构建现代化、可伸缩、弹性、韧性的应用架构。 Serverless与容器 分析Serverless计算模型与容器化技术的融合,以及这种融合带来的新的应用开发和部署模式。 安全性在容器化中的挑战与对策 总结容器化安全性的主要挑战,并探讨多层次的安全防护策略,包括镜像安全、运行时安全、网络安全、身份认证与授权等。 面向未来的探索 展望容器化技术在边缘计算、物联网、AI/ML等新兴领域的应用前景,以及未来可能的技术发展方向。 《容器化之道:从零开始的现代应用部署》的目标是为您提供一套系统性的知识体系,让您不仅能够理解容器化技术的“是什么”,更能够深入理解“为什么”和“怎么做”。本书避免陷入具体工具的使用细节,而是聚焦于底层原理和设计思想,从而赋予您跨越工具版本、应对技术变迁的强大能力。无论您是渴望提升应用部署效率的开发者,还是致力于优化基础设施运维的工程师,本书都将是您在容器化浪潮中稳健前行的宝贵指南。踏上这条容器化之道,您将解锁更高效、更可靠、更具弹性的应用交付新篇章。

用户评价

评分

这本书的实操性极强,每个章节的讲解都紧密结合着实际操作,让我学到的知识能够立刻得到验证和巩固。书中提供了大量的代码示例和操作步骤,我只需要按照书中的指引一步步跟着做,就能成功搭建起自己的Docker环境,并且能够运行各种各样的应用。我尤其喜欢书中关于“实战”部分的讲解,它不只是停留在理论层面,而是通过模拟真实世界的场景,来展示Docker在不同领域的应用。比如,在讲解Web应用部署时,书中就演示了如何使用Docker来部署一个LNMP(Linux, Nginx, MySQL, PHP)的经典组合,并且还讲解了如何进行数据库的持久化存储,以及如何配置反向代理。当我成功地将我自己的一个简单的Web项目容器化并成功运行起来时,那种成就感是难以言喻的。书中还涉及到了CI/CD(持续集成/持续部署)的初步概念,并结合Docker进行了简单的演示,这让我对未来的自动化部署有了更清晰的认识。这本书真正做到了“学以致用”,让我在短时间内就掌握了Docker的核心技能,并且能够自信地将其应用于实际工作中。

评分

这本书简直是为我量身定做的!最近工作总是需要用到容器化部署,之前一直是用别人搭好的环境,但总感觉心里没底,遇到问题也只能束手无策。这本《Docker基础与实战》就像一盏明灯,把我从迷茫中拯救出来。它从最最基础的概念讲起,比如什么是容器,Docker和虚拟机有什么区别,为什么要用Docker等等,这些内容虽然听起来简单,但真的是构建理解Docker世界的基石。我之前看的一些教程,往往上来就讲Dockerfile怎么写,命令怎么用,完全不解释原理,搞得我像个背诵机器,知其然不知其所以然。这本书就不一样了,作者用非常形象的比喻和清晰的逻辑,把Docker的运行机制、镜像的原理、容器的生命周期都讲得明明白白。我尤其喜欢它关于镜像分层和联合文件系统的讲解,以前觉得很玄乎的概念,现在一下子就豁然开朗了。而且,它还穿插了一些生产环境中的最佳实践,比如如何优化镜像大小,如何安全地运行容器,这些都是我急需了解的。这本书给我最大的感受就是,它不只是在教你“怎么做”,更是在教你“为什么这么做”,让我真正理解了Docker的强大之处。

评分

这本书的结构设计非常合理,循序渐进,非常适合不同阶段的学习者。从最基础的概念引入,到深入的原理剖析,再到丰富的实战案例,整个知识体系过渡得非常自然流畅,不会让人感到突兀或者跟不上。我之前尝试过阅读一些Docker的英文文档,虽然内容详实,但对于非英语母语的学习者来说,理解起来还是有些障碍。这本书的出现,恰好弥补了这一空白。它用清晰易懂的中文,将Docker的核心概念和技术细节娓娓道来。书中还贴心地提供了很多思考题和拓展阅读的建议,这让我不仅仅停留在书本的知识点上,还能主动去探索和思考,将知识融会贯通。我特别欣赏书中关于Docker生态系统的介绍,它不仅讲解了Docker本身,还触及了与之相关的其他重要技术,比如Kubernetes、Prometheus等等,为我打开了更广阔的学习视野。这本书就像一本武林秘籍,从招式到内功,从基础的拳脚功夫到高深的内力修炼,都一一传授,让我这个初学者也能逐步成长为一名“Docker高手”。

评分

这本书的内容实在是太丰富了,我每天都沉浸在学习的乐趣中,完全停不下来。虽然名字是《Docker基础与实战》,但它包含的内容远不止于此。比如,在讲解Docker网络的时候,书中深入剖析了Docker的网络模式,包括bridge、host、none以及overlay网络,并且还结合实际场景,演示了如何配置复杂的跨主机容器通信。我之前在工作中遇到过容器之间无法通信的问题,调试了很久都没找到根源,看完这部分的讲解,我才意识到之前的理解有多么片面。书中还对Docker Compose进行了详细的讲解,它不仅仅是简单地介绍如何写docker-compose.yml文件,更重要的是阐述了如何利用Compose来编排多容器应用,如何进行服务的依赖管理、端口映射、卷挂载等等。我尝试着将我项目中几个相互依赖的服务用Compose进行了定义,结果发现部署效率大大提升,而且环境一致性也得到了很好的保证。此外,书中还提到了Kubernetes的入门知识,虽然不是重点,但对于想进一步深入容器编排的读者来说,这部分内容无疑是锦上添花,提供了一个很好的过渡。这本书的知识体系非常完整,从单机容器到多容器编排,再到对未来容器技术趋势的展望,都涵盖到了,给我的职业发展指明了方向。

评分

这本书的写作风格让我耳目一新,完全颠覆了我对技术书籍枯燥乏味的刻板印象。作者的语言幽默风趣,常常在讲解一些复杂的概念时,用一些贴近生活、生动形象的比喻来辅助说明,让我感觉阅读过程非常轻松愉快,一点都不觉得累。比如,在讲解Docker镜像的构建过程时,作者把Dockerfile的每一条指令都比作“指令集”,把最终生成的镜像比作“定制好的模具”,这样一来,即使是初学者也能很快理解镜像的生成逻辑。而且,书中还穿插了很多作者在实际工作中的经验和教训,这些“坑”的提醒,对我来说简直是无价之宝,让我避免了很多不必要的弯路。让我印象深刻的是,书中关于容器安全的部分,作者详细列举了各种潜在的安全风险,并且提出了很多切实可行的防范措施,这对于我这种在安全方面知识比较薄弱的读者来说,简直是及时雨。总而言之,这本书不仅传授了知识,更重要的是教会了我如何去思考问题,如何从更深层次去理解Docker,这种潜移默化的影响,比单纯记住几个命令要宝贵得多。

评分

书内容还不错

评分

不错不错不错不错不错??了我一

评分

不错挺好的,很好,很棒,

评分

Docker基础与实战

评分

书籍很不错,值得一读

评分

工作需要学习。

评分

给朋友买的,还行

评分

还可以。。。。。。

评分

翻译的韩国的作者的,入门级的

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有