在生产环境中运行Docker容器困难不小,但还是能实现的。每天都有越来越多公司开始在生产环境中运行Docker。如同所有的基础设施一样,我们建议以小规模入手,然后渐进式地完成迁移。 ### 为什么Docker在生产环境如此困难 对生产环境有很多要求:安全可靠的部署、健康检查、最小或零停机时间、从失败中恢复的能力(回滚)、一个集中存储日志的方式、一种分析或调试应用的方式,以及一种聚合监控参数的方式。类似Docker这样的新技术虽然使用起来非常有趣,但还需要时间来完善。 Docker在可移植性、一致性以及打包具有众多依赖的服务这些方面非常有优势。多数团队会因为以下一个或多个痛点而坚持使用Docker。 - 一个应用的不同部分使用大量不同的依赖。 - 支持使用旧依赖的遗留应用程序。 - 开发团队与DevOps之间的工作流问题。 本书中我们所采访的团队,有一个共同的警示:切勿尝试在一个组织内让采用Docker这事一蹴而就。即便运维团队已经为采用Docker做好了充分的准备,也请记住,过渡到Docker通常意味着将管理依赖的重任推给了开发人员。虽然很多开发人员都渴求这种自主权,以便加快迭代,但并非每位开发人员都有能力或兴趣将其列入自己的责任范围。为了能有一个良好的Docker工作流,还是需要花些时间来转变企业文化。 在第2章中,我们将阐述Docker的技术栈。