《Docker生产环境实践指南》——第1章 入门 1.1 术语

第1章 入门

建立Docker生产环境系统的首要任务,是以一个有助于想象各组件如何相互配合的方式来理解其术语。与其他快速发展的技术生态系统一样,我们可以预见,Docker野心勃勃的市场营销、不完善的文档以及过时的博客文章将造成使用者对各个工具职责理解上的混乱。

我们将在本章中定义贯穿全书的术语和概念,而非提供一份统一的Docker百科全书。通常情况下,我们的定义与生态系统中的大体一致,但如果你所阅读的博客文章中使用了不同的术语也不用太过惊讶。

在本章中,我们将介绍在生产环境中运行Docker的核心概念以及不涉及具体技术的容器常识。在随后的章节中,我们将讨论真实世界的生产环境用例,并详细说明其组件和供应商信息。

1.1 术语

下面让我们来看一下本书所采用的Docker术语。

1.1.1 镜像与容器
镜像是指文件系统快照或tar包。
容器是指镜像的运行态。
1.1.2 容器与虚拟机
虚拟机持有整个操作系统和应用程序的快照。
虚拟机运行着自己的内核。
虚拟机可以运行Linux之外的其他操作系统。
容器只持有应用程序,不过应用程序的概念可以延伸到整个Linux发行版。
容器共享宿主机的内核。
容器只能运行Linux,不过在同一宿主机上运行的每个容器都可包含不同的发行版。
1.1.3 持续集成/持续交付
在应用程序新代码提交或触发其他条件时,系统自动构建新镜像并进行部署。

1.1.4 宿主机管理
设置/配备一台物理服务器或虚拟机以便用于运行Docker容器的过程。

1.1.5 编排
编排(orchestration,也称编配)这个术语在Docker生态系统中有多种含义。通常情况下,它包括调度和集群管理,不过有时也包括了宿主机管理。

在本书中,我们将编排作为一个松散的总称,包括容器调度的过程、集群的管理、容器的链接(发现),以及网络流量路由。或者换句话说,编排是个控制器进程,用于决定在哪里运行容器,以及如何让集群知道可用的服务。

1.1.6 调度
调度用于决定哪些容器可以以给定的资源约束(如CPU、内存和IO)运行在哪些宿主机上。

1.1.7 发现
容器如何公开服务给集群,以及发现如何查找其他服务并与之通信的过程。举个简单的用例:一个网站应用容器发现如何连接到数据库服务。

Docker文档中的发现是指将容器链接在一起,不过在生产级系统中,通常使用的是更复杂的发现机制。

1.1.8 配置管理
配置管理过去常常指的是Docker出现之前的自动化工具,如Chef和Puppet。大多数的DevOps团队正在转移到Docker上,以消除这类配置管理系统的复杂度。

在本书的示例中,配置管理工具只用于配备具有Docker和少量其他东西的宿主机。

时间: 2024-10-27 15:01:14

《Docker生产环境实践指南》——第1章 入门 1.1 术语的相关文章

《Docker生产环境实践指南》——第2章 技术栈 2.1构建系统

第2章 技术栈 生产环境的Docker设置包括了一些基本的架构组件,这些组件对运行容器化的及传统的服务器集群来说是通用的.在很多方面,可以简单地认为构建和运行容器的方式与当前构建和运行虚拟机的方式是一样的,只是使用了一套新的工具和技术. (1)构建并保存镜像快照.(2)将镜像上传到仓库中.(3)下载镜像到某台宿主机中.(4)以容器方式运行镜像.(5)将容器连接到其他服务上.(6)路由流量到容器中.(7)将容器日志发送到指定位置.(8)监控容器. 与虚拟机不同的是,容器通过将宿主机(裸机或虚拟机)

《Docker生产环境实践指南》——导读

** 前言 **Docker是基础设施的新成员.很少有新兴技术能像它这样,在DevOps和基础设施领域中快速风靡起来.在不到两年的时间内,Google.亚马逊.微软.IBM以及几乎所有云供应商都宣布支持运行Docker容器.大量与Docker相关的创业公司在2014年和2015年年初都获得了风险资本的投资.Docker开源技术背后的同名公司--Docker公司,在2015年第一季度的D轮融资中估值为10亿美元左右.大大小小的公司都在转换其应用,使之运行于容器内,以此实现面向服务架构(SOA)和微

《Docker生产环境实践指南》——1.4 可预期的情况

1.4 可预期的情况 在生产环境中运行Docker容器困难不小,但还是能实现的.每天都有越来越多公司开始在生产环境中运行Docker.如同所有的基础设施一样,我们建议以小规模入手,然后渐进式地完成迁移. 为什么在生产环境中运行Docker如此困难Docker对生产环境有很多要求:安全可靠的部署.健康检查.最小或零停机时间.从失败中恢复的能力(回滚).一个集中存储日志的方式.一种分析或调试应用的方式,以及一种聚合监控参数的方式.类似Docker这样的新技术虽然使用起来非常有趣,但还需要时间来完善.

《Docker生产环境实践指南》——2.6 编排

2.6 编排 如何将容器组织成集群?在哪些服务器上运行容器?如何调度服务器资源?如何运行容器?如何将流量路由给容器?如何让容器公开和发现服务?"编排 = 强力胶带".至少多数情况下可以这么认为. 市面上有很多处于早期阶段的全功能容器编排系统,如Docker Swarm.Kubernetes.Mesos和Flynn.但对大多数团队而言,这些系统通常过于强大,增加了在生产环境中出现问题时调试的复杂度.决定使用哪个工具来完成编排常常是设置和运行Docker中最艰难的部分. 在第3章中,我们将

《Docker生产环境实践指南》——1.2 从开发环境到生产环境

1.2 从开发环境到生产环境 本书着重于生产环境或非开发环境中的Docker,这意味着我们不会花太多的篇幅在开发环境中Docker的配置和运行上.但由于所有服务器都在运行代码,如何看待在Docker和非Docker系统中的应用程序代码还是值得简单讨论一下的. 与Chef.Puppet和Ansible这类传统配置系统不同,Docker最好的使用方式是将应用程序代码预先打包成一个Docker镜像.镜像通常包含所有的应用程序代码.运行时的依赖以及系统的需求.而包含数据库凭证和其他敏感信息的配置文件通常

《Docker生产环境实践指南》——2.3 宿主机管理

2.3 宿主机管理 如何配备宿主机?如何升级宿主机?由于Docker镜像包含了应用及其依赖,宿主机管理系统通常只需要添加新服务器,配置访问权限和防火墙,并安装Docker守护进程即可. 类似亚马逊的EC2 Container Service这类服务将消除对传统宿主机管理的依赖.

《Docker生产环境实践指南》——2.4 配置管理

2.4 配置管理 如何定义容器的集群?如何处理宿主机和容器运行时的配置?如何管理密钥和机密信息?一个基本规则是:尽量避免使用传统的配置管理系统.其增加的复杂性往往会造成故障.Ansible.SaltStack.Chef或Puppet这类工具仅用于配备带有Docker守护进程的宿主机.尽可能试着摆脱对旧的配置管理系统的依赖,并使用本书所述的发现和集群技术转移到自我配置的容器上.

《Docker生产环境实践指南》——2.2 镜像仓库

2.2 镜像仓库 Docker镜像保存在哪里?当前的Docker镜像仓库可靠性比较差,但是每个月都在改善.Docker官方的镜像仓库中心是众所周知的不可靠,需要额外的重试和故障保护措施.多数团队一般会在自己的基础设施上运行私有的镜像仓库,以减少网络传输成本和延迟.

《Docker生产环境实践指南》——2.5 部署

2.5 部署 如何将容器放置在宿主机上?镜像部署有以下两种基本方法. (1)推送 --部署或编排系统将镜像推送给相关宿主机.(2)拉取 --事先或按需从镜像仓库拉取镜像.