Skip to Content
Docker:入门与实践,第三版
book

Docker:入门与实践,第三版

by Sean P. Kane, Karl Matthias
May 2025
Intermediate to advanced
418 pages
5h 47m
Chinese
O'Reilly Media, Inc.
Content preview from Docker:入门与实践,第三版

第 2 章 Docker 全景

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

在深入了解 Docker 的配置和安装之前,有必要进行一次广泛的调查,以解释 Docker 是什么以及它能带来什么。这是一项强大的技术,但其核心并不复杂。在本章中,我们将大致介绍 Docker 和 Linux 容器的工作原理、它们的强大之处,以及你可能会使用它们的一些原因。如果你正在阅读这篇文章,那么你可能已经有了使用容器的理由,但在开始使用之前先加深一下理解也无妨。

别担心,这一章不会耽误你太长时间。在下一章中,我们将直接进入在系统上安装和运行 Docker 的阶段。

简化流程

因为 Docker 是一款软件, ,所以如果采用和实施得好,它也能对公司和团队流程产生很大的积极影响,这一点可能并不明显。因此,让我们深入了解一下 Docker 和 Linux 容器如何同时简化工作流程和沟通。这通常要从部署故事说起。传统上,将应用程序部署到生产环境的周期通常如下所示(如图 2-1 所示):

  1. 应用程序开发人员向运行工程师申请资源。

  2. 提供资源并将其移交给开发人员。

  3. 开发人员编写部署脚本并将其工具化。

  4. 运维工程师和开发人员会反复调整部署。

  5. 开发人员会发现其他应用程序依赖项。

  6. 运行工程师负责安装额外的要求。

  7. 重复步骤 4 至 6n次。

  8. 应用程序已部署。

A Non-Docker deployment workflow
图 2-1. 传统的部署工作流程(不含 Docker)

我们的经验表明,如果按照传统流程,将一个全新的应用程序部署到生产中,对于一个复杂的新系统来说,可能需要一周的时间。这样的工作效率并不高,即使 DevOps 实践能够缓解许多障碍,但往往仍需要大量的努力和团队间的沟通。这个过程既具有技术挑战性,又成本高昂,更糟糕的是,它可能会限制开发团队未来的创新。如果部署新软件既困难又耗时,还需要依赖其他团队的资源,那么开发人员可能会将所有内容都构建到现有的应用程序中,以避免遭受新部署的惩罚,更有甚者,他们可能会干脆避免解决需要新开发工作的问题。

Heroku这样的 "推送部署 "系统 向开发人员展示了,如果你能控制自己的应用程序和大部分依赖关系,世界会变成什么样。在与开发人员讨论部署问题时,他们经常会提到 Heroku 或类似系统的便捷性。如果你是一名运维工程师,你可能听过这样的抱怨:与 Heroku 这样建立在 Linux 容器技术之上的 "按钮式 "解决方案相比,你的内部系统要慢得多。

Heroku 是一个完整的环境,而不仅仅是一个容器引擎。虽然 Docker 并没有试图成为 Heroku 所包含的一切,但它提供了明确的责任分离和依赖关系封装,从而同样提高了工作效率。Docker 还允许比 Heroku 更精细的控制,开发人员可以控制一切,小到与应用程序一起发布的确切文件和软件包版本。建立在 Docker 基础上的一些工具和协调器(如 Kubernetes、Docker Swarm 模式和 Mesos)旨在复制 Heroku 等系统的简易性。但是,即使这些平台对 Docker 进行了更多包装,以提供能力更强、更复杂的环境,但只使用 Docker 的简单平台仍能提供所有核心流程优势,而不会增加较大系统的复杂性。

作为一家公司,Docker ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

人工智能技术与大数据

人工智能技术与大数据

Posts & Telecom Press, Anand Deshpande, Manish Kumar
超越Vibe编程

超越Vibe编程

Addy Osmani
写给系统管理员的Python脚本编程指南

写给系统管理员的Python脚本编程指南

Posts & Telecom Press, Ganesh Sanjiv Naik

Publisher Resources

ISBN: 9798341656826