趋近智
为了解决“在我的机器上能运行”的问题,Docker 使用了两个基本原理:镜像和容器。明白它们之间的区别是有效使用 Docker 打包和运行应用程序的第一步。可以将它们看作是蓝图和根据蓝图建造出来的建筑。
Docker 镜像是一个轻量级、独立、可执行的软件包,它包含了运行一段软件所需的一切:代码、运行时环境(如 Python)、系统工具、系统库和配置。它本质上是一个模板或蓝图。
Docker 镜像的特点包括:
Dockerfile(我们将在下一节介绍)中的每条指令通常都会创建一个新层。这种分层方式使构建和分发高效,因为 Docker 只需重建或下载已更改的层。例如,您的基础操作系统层可以在许多镜像中复用。requirements.txt)、Python 解释器本身,以及应用程序正确运行所需的任何操作系统库或工具。可以将 Docker 镜像想象成制作蛋糕的详细食谱。食谱列出了所有配料(库、代码)、特定的烤箱设置(运行时配置)和分步说明(构建过程)。食谱本身是不会改变的。
Docker 容器是 Docker 镜像的运行实例。如果说镜像是一个蓝图(或食谱),那么容器就是根据蓝图建造的实际房屋(或根据食谱烘焙的蛋糕)。
当您“运行”一个镜像时,您就创建了一个容器。容器的特点如下:
用我们的类比来说,容器就像实际使用食谱(镜像)烘焙蛋糕。您遵循说明,混合配料,然后放入烤箱。烘焙出的蛋糕就是容器,它是从食谱创建出的一个具体实例。您可以使用那个食谱(镜像)烘焙出许多相同的蛋糕(容器)。
核心关系很简单:镜像是在构建时生成的产物,而容器是在运行时生成的产物。 您只需构建一次镜像,然后可以在不同的机器上多次运行它,每次都创建相同的容器。
这种关系提供了部署所需的一致性。因为镜像打包了应用程序及其环境,所以从该镜像运行容器可确保应用程序的行为方式一致,无论底层宿主系统的配置如何。
该过程始于包含指令的
Dockerfile。运行docker build会创建一个只读的 Docker 镜像。使用此镜像运行docker run会启动一个或多个独立可运行的容器。
理解这种区别非常重要。我们构建一个包含 Flask 应用程序、其依赖项和 Python 运行时的镜像。然后,我们将这个镜像作为容器运行,它会在隔离、一致的环境中执行我们的 Flask 应用程序,准备好提供预测服务。在后续章节中,我们将学习如何编写 Dockerfile(食谱)来为我们的预测服务构建镜像。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造