docker python images Docker Python镜像别乱拉!容器和镜像傻傻分不清,你还在踩坑?
一、学前花絮
多数起初涉猎的人, 于初涉之际, 会被“镜像”、“容器”、“仓库”这些词汇弄得晕头转向, 不知所措。特别是极易将镜像(即 Image)与容器(此处)弄混——它们到底存在怎样的差异? 为何称容器是“运行之时的镜像”? 其又担任着什么角色?
这篇章会自起始之零开始着手, 借由最为浅显真切的言语以及按指令开展操作, 助力你将这些概念梳理明晰。在读完该篇文章之后, 你便能够:
二、 核心概念:镜像、容器、.1 是什么?为什么需要它?
它是一个开源的平台, 该平台是用于容器化的, 它能够让你把应用程序以及它的所有那些依赖, 包括代码、运行时、还有库以及配置, 全都打包成为唯一单元, 此单元具备独立性, 并且是可移植的, 而这个单元便是容器。
传统开发里头, 常常会出现这样的状况, 就是“在我的计算机上是能够运行的, 然而到了你那儿却不行了”的问题。借助于隔离环境, 达成了从开发直至生产阶段的环境一致性。与此同时, 它相较于虚拟机而言, 更为轻量, 启动的速度更快, 所占用的资源也更少。
2.2 核心概念一:镜像(Image)—— 只读的“模板”
镜像是文件集合, 它只读, 且静态, 其中涵盖运行某软件所有内容, 具体有精简的操作系统文件, 有应用程序, 有依赖库, 还有环境变量等。能够将镜像视作“安装光盘”, 或者当作一个“装修设计图”。
具有代表性的镜像包含, nginx:(作为Web服务器的那种)、mysql:8.0(属于数据库范畴的)、:3.9-slim(关乎运行环境方面的)。
查看本机已有的镜像:
每一行, 都代表着一个已经被下载到本地的镜像, 这个镜像并不运行, 就是安安静静地躺在硬盘之上, 硬盘位置通常处于 /var/lib/。
2.3 核心概念二:容器()—— 运行中的“实例”
镜像的动态运行实例是容器, 当执行run时, 会基于镜像创建出一个可读写的容器层, 且启动其中进程, 可将容器理解为是“安装并启动后的操作系统”。
以 nginx: 启动 3 个不同的 Web 服务为例, 同一个镜像能够创建多个容器。
容器能够被启动, 也能够被停止, 还能够被删除, 在删除容器之后, 对于容器内部所做的改变, 像是新建的文件, 将会丢失, 不过镜像自身不会改变。
查看正在运行的容器:
统计容器数量:
2.4 镜像 vs 容器:一张表看懂区别
总之, 镜像属于类, 容器是实例, 镜像宛若照片之底片, 容器恰似冲洗出之照片。
2.5 核心概念三: —— 定义镜像的“配方”
它是一个文本文件, 其中涵盖了种种构建指令, 这些指令会告知怎样起始于一个基础镜像, 进而复制代码, 接着开展安装依赖的操作, 随后进行设置环境的步骤, 最终成功组装出一个独具特性的全新镜像。
为什么需要 ?
之前你可能用过这样的命令:
此方式依靠宿主机之上的代码目录, 并且每一次启动之时都得再度安装依赖。能够将代码与依赖一同打包至镜像之中, 达成“一次构建, 到处运行”之效果。
一个最简单的 示例
假设你的 Flask 应用目录结构:
app.py:
.txt:
(放在同一目录):
构建并运行自定义镜像
在 所在目录执行:
您只要访问那个网址, 也就是http://虚拟机IP:5000 , 当即便能看到hello。此镜像能够被导出, 还能够上传至仓库, 在任何一台装有 的机器之上直接运行。
2.6 实战小练习: 从一开始就进行你的应用准备代码的打包, 要创建如同上面示例里的 app.py 和 .txt, 完成编写, 像上面所显示的那样, 构建镜像, 执行 build -t my - first - app .来运行容器, 使用 run - d - p 8080:5000 -- name test - app my - first - app进行访问测试, 在浏览器中打开 :8080(或者虚拟机 IP), 查看容器, 通过 ps 来确认其处于运行状态。要停下来, 并且要进行删除操作: 先停下测试应用程序, 然后再删除测试应用程序。
有这么一个小练习, 借助它, 你应当能够凭借直观的感受体会到, 这种情况使得应用交付转变而成了一种极为极致且又进行了简化的状态, 具体表现为“一个镜像 + 一条 run 命令”。
三、小结
镜像是静态模板,容器是动态运行实例。
一个镜像可以衍生出多个容器,容器之间相互隔离。
这是一个脚本, 此脚本的用途是构建自定义镜像, 它会将环境配置以及代码固化到镜像里头, 以此达成环境的一致性。
常用命令: 、 ps、 run、 build。
知晓了这些关键概念, 你便把控住了 的“根基”。随后能够研习 (布置多款容器而且是多个)以及容器网络, 进而开启微服务部署的强大力量。
让我们保持学习的热情,2026年一马当先、马到成功!
