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

1.2 从开发环境到生产环境

本书着重于生产环境或非开发环境中的Docker,这意味着我们不会花太多的篇幅在开发环境中Docker的配置和运行上。但由于所有服务器都在运行代码,如何看待在Docker和非Docker系统中的应用程序代码还是值得简单讨论一下的。

与Chef、Puppet和Ansible这类传统配置系统不同,Docker最好的使用方式是将应用程序代码预先打包成一个Docker镜像。镜像通常包含所有的应用程序代码、运行时的依赖以及系统的需求。而包含数据库凭证和其他敏感信息的配置文件通常在运行时添加,而非内建到镜像中。

有些团队会在开发机上手工构建Docker镜像,然后推送到镜像仓库,之后再从仓库中拉取镜像到生产环境宿主机中。这是个很简单的用例。虽然行得通,但从工作流和安全角度考虑并不理想。

一个更常见的生产环境示例是,使用持续集成/持续交付系统在应用程序代码或Dockerfile文件发生变更时自动构建新镜像。

时间: 2024-10-02 07:59:28

《Docker生产环境实践指南》——1.2 从开发环境到生产环境的相关文章

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

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

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

第1章 入门 建立Docker生产环境系统的首要任务,是以一个有助于想象各组件如何相互配合的方式来理解其术语.与其他快速发展的技术生态系统一样,我们可以预见,Docker野心勃勃的市场营销.不完善的文档以及过时的博客文章将造成使用者对各个工具职责理解上的混乱. 我们将在本章中定义贯穿全书的术语和概念,而非提供一份统一的Docker百科全书.通常情况下,我们的定义与生态系统中的大体一致,但如果你所阅读的博客文章中使用了不同的术语也不用太过惊讶. 在本章中,我们将介绍在生产环境中运行Docker的核

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

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

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

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

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

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

《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)拉取 --事先或按需从镜像仓库拉取镜像.