第一本Docker书(修订版)

詹姆斯·特恩布尔 (James Turnbull)

出版时间

2016-03-31

ISBN

9787115419330

评分

★★★★★

标签

编程

书籍介绍
这本书在读者口中反复被提及的,是它'前半部分堪称案头手册'的特质:概念讲解细致清晰,遇到讲不透的地方还会主动给出链接引导读者自行拓展。正因如此,它特别适合刚接触容器、想系统建立认知框架的人。但评论区的另一面同样真实:不少读者指出书中大量示例代码已过时,与官方仓库和GitHub上的现况对不上,'很多内容已经deprecated'。这构成了本书最核心的张力——作为理解Docker设计思想(容器为何轻量、为何依赖宿主系统、职责如何分离)的入门读物,它依然扎实;但若照抄其中的命令与配置,很可能踩进过时的坑。建议把它当作'学原理'的教材,而非'照做'的操作手册,并随时对照最新官方文档核验命令。
作者简介
作者简介 James是一位技术作家,还是一名开源极客。他的大作是一本讲述流行开源日志工具的书——The LogStash Book。James还写了两本关于Puppet的书,一本是Pro Puppet,另一本是较早的Pulling Strings with Puppet: Configuration Management Made Easy。此外,James还写了Pro Linux System Administration、Pro Nagios 2.0和Hardening Linux这三本书。 James是Kickstarter公司的CTO。之前,James曾担任Docker公司服务与支持副总裁、Venmo公司工程副总裁和Puppet Labs的技术运维副总裁。 译者简介 李兆海,网名Googol Lee。使用Googol这个名字真的是因为“10的100次方”这个意思,和后来的Google公司没有一点儿关系。多年后端程序员,早期以C、C++为主,后来转向Python,现在以Go为生。曾写过《Golang初探》发表于2011年2月号《程序员》。Docker早期使用者。平时喜欢乱翻书,遇到感兴趣的都会研究一番。Twitter账户@googollee。 刘斌,具有10余年软件开发经验,关注后台开发技术和各种编程语言。做过电子商务、金融、企业系统以及Android手机开发;写过Delphi,也兼做系统管理员和DBA(现在都改叫DevOps了);既做后台应用,也要调用前台CSS和JavaScript,可还是不敢自称“全栈”(Full Stack);今又舶来“增长黑客”(Growth Hacker),我想我要做一个“增长工程师”(Growth Engineer)。个人主页 http://liubin.org。 巨震,北京大学软件工程硕士,服务器端开发者。目前就职于创业公司,使用Node.js、Golang进行服务器端开发。2013年年底开始研究Docker,是Docker中文社区的活跃贡献者,负责Docker技术文章和视频的翻译、校对工作。生活中喜欢美食、骑行,热衷于PC硬件,喜爱折腾,热爱一切计算机相关的技术,坚信技术改变世界。崇拜的技术传奇人物是前id Software首席程序员、现Oculus VR首席技术官John Carmack。
AI导读
核心看点
  • Docker公司前高管撰写,全球首本Docker著作
  • 涵盖安装部署、镜像构建及API使用全流程
  • 从测试到生产,详解容器化开发生命周期
读者共识
  • 概念讲解清晰,是公认的Docker入门好书
  • 内容略显陈旧,部分代码实例无法直接运行
  • 适合建立知识框架,进阶需参考更新资料
精彩摘录
  • "由于“客居”于操作系统,容器只能运行于与底层宿主机相同或相似的操作系统……"
  • "和传统的虚拟化以及半虚拟化(paravirtualization)技术相比,容器运行不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系统调用接口。这降低了运行单个容器需要的开销,使得宿主机中可以运行更多的窗口。"
  • "Docker 是一个能够把开发的应用程序自动部署到容器的开源引擎。"
  • "Docker开始"
  • "如果目标地址以/结尾,那么 Docker 就认为源位置指向的是一个目录。如果目的地址以/结尾,那么 Docker 就认为源位置指向的是目录。如果目的地址不是以/结尾,那么 Docker 就认为源位置指向的是文件。"
  • "FROM ubuntu:14.04 MAINTAINER James Turnbull "[email protected]" ENV REFRESHED_AT 2014-06-01 RUN apt-get -yqq update && apt-get -yqq install ruby ruby-dev build-essential redis-tools RUN gem install --no-rdoc --no-ri sinatra json redis RUN mkdir -p /opt/webapp EXPOSE 4567 CMD ["/opt/webapp/bin/webapp"
  • "FROM ubuntu:14.04 MAINTAINER James Turnbull <[email protected]> ENV REFRESHED_AT 2014-06-01 RUN apt-get -yqq update RUN apt-get -yqq install ruby ruby-dev make nodejs RUN gem install --no-rdoc --no-ri jekyll -v 2.5.3 VOLUME /data VOLUME /var/www/html WORKDIR /data ENTRYPOINT [ "jekyll", "build", "--"
  • "FROM jamtur01/redis MAINTAINER James Turnbull ENV REFRESHED_AT 2014-06-01 ENTRYPOINT [ "redis-server", "--logfile /var/log/redis/redis-server.log" ]"
目录
第1章 简介 1
1.1 Docker简介 2
1.1.1 提供一个简单、轻量的建模方式 2
1.1.2 职责的逻辑分离 3
1.1.3 快速、高效的开发生命周期 3

显示全部
用户评论
入门。学这个网得好,要不一堆东西等半天。。
一本Docker入门非常棒的书 书的前半部分(直到第4章)基本上可以算一个案头手册, 很多概念与使用方法的讲解, 内容细致清晰, 即使因为深度照顾不到的地方也都给出了链接, 以备读者去拓宽视野. 第5、6、7章是有一定难度的: Docker的实践技巧、容器的编排部署, 看上去豁然开朗, 但实践起来也确实颇感费力, 可以拓宽自己对Docker能力的认知. 另附几篇左耳朵耗子的讲述Docker实现的文章: "Docker基础技术: Linux Namespace(上/下)、Linux CGroup、AUFS、DeviceMapper", 深入到Linux API层面分析Docker实现, 对于理解Docker原理还是有帮助的, 不过如果能有文章深入到操作系统层面探讨容器的实现原理就更好了~~
https://www.dockerbook.com/
内容还可以,只是这翻译真是服了。感受一下: NOTE As with the CMD instruction above, you can see that we’ve specified the ENTRYPOINT command in an array to avoid any issues with the command being prepended with /bin/sh -c. 注意从上面看到的CMD指令可以看到,我们通过以数组的方式指定ENTRYPOINT在想运行的命令前加入/bin/shc来避免各种问题。
入门不错,部分内容需要修订了
待更新版本
感觉是给运维看的,怎么构建管理容器
入门级案例
入门好书,跟着做一遍实验,学习起来很轻松
docker swarm/ mesos 已经成为时代的眼泪了
下载
收藏