Skip to Content
用于 DevOps 的 Python
book

用于 DevOps 的 Python

by Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
May 2025
Intermediate to advanced
506 pages
6h 56m
Chinese
O'Reilly Media, Inc.
Content preview from 用于 DevOps 的 Python

第 11 章:集装箱技术 容器技术:Docker 和 Docker Compose

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

虚拟化技术早在 IBM 大型机时代就已出现。大多数人都没有机会在大型机上工作过,但我们相信,本书的一些读者还记得他们不得不安装或使用惠普或戴尔等制造商的裸机服务器的日子。如今,这些制造商仍然存在,你仍然可以使用托管在主机代管设施中的裸机服务器,就像网络时代的美好时光一样。

然而,当大多数人想到虚拟化时,他们不会自动想到大型机。相反,他们最可能想到的是在 VMware ESX 或 Citrix/Xen 等管理程序之上运行 Fedora 或 Ubuntu 等客户操作系统(OS)的虚拟机(VM)。与普通的裸机服务器相比,虚拟机的最大优势在于,通过使用虚拟机,你可以将服务器的资源(CPU、内存、磁盘)分给多个虚拟机,从而优化服务器资源。您还可以在一台共享裸机服务器上运行多个操作系统,每个操作系统都有自己的虚拟机,而不用为每个目标操作系统购买一台专用服务器。如果没有管理程序和虚拟机,亚马逊 EC2 等云计算服务就不可能实现。这种类型的虚拟化可称为内核级,因为每个虚拟机都运行自己的操作系统内核。

在永无止境地追求更高性价比的过程中,人们意识到虚拟机仍在浪费资源。下一个合乎逻辑的步骤是将单个应用程序隔离到自己的虚拟环境中。这可以通过在同一个操作系统内核中运行容器来实现。在这种情况下,它们被隔离在文件系统级别。Linux 容器(LXC)和 Sun Solaris 区域是此类技术的早期范例。它们的缺点是难以使用,而且与所运行的操作系统紧密耦合。当 Docker 开始提供管理和运行文件系统级容器的简便方法时,容器的使用出现了重大突破。

什么是 Docker 容器?

Docker 容器将应用程序与其运行所需的其他软件包和库封装在一起。人们有时会交替使用 Docker 容器和 Docker 镜像这两个术语,但两者是有区别的。封装应用程序的文件系统级对象称为 Docker 映像。当你运行映像时,它就变成了 Docker 容器。

你可以运行多个 Docker 容器,它们都使用相同的操作系统内核。唯一的要求是,你必须在要运行容器的主机上安装一个名为 Docker 引擎或 Docker 守护进程的服务器端组件。这样,主机资源就能以更细粒度的方式在各容器之间进行分割和利用,让你的钱花得更值。

Docker 容器提供了比普通 Linux 进程更多的隔离和资源控制,但提供的隔离和资源控制不如成熟的虚拟机。为了实现这些隔离和资源控制特性,Docker 引擎利用了 Linux 内核特性,如命名空间、控制组(或 cgroups)和联合文件系统(UnionFS)。

Docker 容器的主要优势在于可移植性。一旦创建了 Docker 镜像,就可以将其作为 Docker 容器在任何有 Docker 服务器端守护进程的主机操作系统上运行。如今,所有主流操作系统都运行 Docker 守护进程:Linux、Windows 和 macOS。

所有这些听起来都太理论化了,所以现在是时候举一些具体的例子了。

创建、构建、运行和删除 Docker 映像和容器

由于这是一本关于 Python 和 DevOps 的书,我们将以 Flask 的经典应用 "Hello World "为例,介绍在 Docker 容器中运行的应用程序。本节中展示的示例使用的是 Docker for Mac 软件包。后续章节将介绍如何在 ...

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

《Python 数据分析》第三版

《Python 数据分析》第三版

Wes McKinney
ppk on JavaScript

ppk on JavaScript

Peter-Paul Koch

Publisher Resources

ISBN: 9798341657380