首页/新闻资讯/正文详情

《Docker 镜像、容器、仓库一张图讲清楚》

发布时间:2026/9/27 10:19:35 来源:云帆数科 栏目:资讯中心
《Docker 镜像、容器、仓库一张图讲清楚》
Docker 镜像、容器、仓库一张图讲清楚很多初学者刚接触 Docker 时会被三个词绕晕镜像Image、容器Container、仓库Registry/Repository。它们看起来都和“装东西”有关但职责完全不同。这篇文章用一张关系图配合比喻和实战命令帮你一次性理清。一、先记住一句话镜像只读模板相当于“类”或“安装包”。容器镜像跑起来的实例相当于“对象”或“正在运行的程序”。仓库存放镜像的地方相当于“应用商店”或“远程代码库”。用程序员熟悉的比喻Docker 概念面向对象比喻生活比喻镜像类Class盖房子的图纸容器对象Instance按图纸盖好的房子仓库远程仓库图纸仓库 / 应用商店二、一张图看懂三者关系docker builddocker rundocker commitdocker pushdocker pulldocker exec 修改Dockerfile镜像 Image容器 Container仓库 Registry这张图说明了完整闭环写Dockerfile用docker build构建出镜像。用docker run把镜像启动成容器。容器里可以修改文件、安装软件。用docker commit可以把容器当前状态保存成新镜像。用docker push把镜像推到仓库。在其他机器上用docker pull从仓库拉取镜像。仓库内部还有层级关系Registry 仓库服务Namespace 命名空间/用户Repository 镜像仓库Tag: latestTag: v1.0Tag: v2.0比如nginx:latestnginx是 Repository镜像仓库名latest是 Tag标签完整写法可能是docker.io/library/nginx:latest三、镜像一切从模板开始镜像是只读的它包含一个精简的操作系统文件系统应用运行所需的依赖、库、配置启动命令、环境变量、暴露端口等元数据镜像采用分层存储。比如nginx:latest ├── Layer 1: Debian 基础层 ├── Layer 2: 安装 nginx 依赖 ├── Layer 3: 拷贝 nginx 配置 └── Layer 4: 设置启动命令多层可以复用所以多个镜像共享基础层时磁盘占用不会成倍增加。常用命令dockerimages# 查看本地镜像dockerpull nginx:latest# 从仓库拉取镜像dockerrmi nginx:latest# 删除本地镜像dockerinspect nginx:latest# 查看镜像详情四、容器镜像跑起来容器 镜像 可写层 运行时配置。当你执行dockerrun-d--namemynginx-p8080:80 nginx:latestDocker 会检查本地有没有nginx:latest镜像没有就去仓库拉。在镜像只读层之上加一个可写层。分配网络、进程空间、文件系统。启动容器。容器里的修改都发生在可写层不会影响原镜像。一旦容器删除可写层默认也会消失所以重要数据要用volume或bind mount持久化。常用命令dockerps# 查看运行中的容器dockerps-a# 查看所有容器dockerstop mynginx# 停止容器dockerstart mynginx# 启动容器dockerrmmynginx# 删除容器dockerexec-itmynginxsh# 进入容器dockerlogs mynginx# 查看日志容器有生命周期created → running → paused → stopped → exited → deleted五、仓库镜像的家仓库用来集中存储和分发镜像。常见的有Docker Hub官方公共仓库Harbor企业私有仓库GitLab Container Registry阿里云、腾讯云等容器镜像服务注意区分两个词Registry仓库服务比如 Docker Hub 整体。Repository某个镜像的仓库比如nginx这个仓库。Tag仓库里的版本比如latest、1.25、alpine。完整镜像名格式[registry地址/][命名空间/]仓库名[:标签]例如docker.io/library/nginx:latest registry.example.com/myteam/myapp:v1.2.3常用命令dockerlogin# 登录仓库dockertag mynginx:v1 user/mynginx:v1# 给镜像打标签dockerpush user/mynginx:v1# 推送镜像dockerpull user/mynginx:v1# 拉取镜像六、实战从拉取到推送下面走一遍完整流程加深理解。1. 拉取并运行 Nginxdockerpull nginx:latestdockerrun-d--namemynginx-p8080:80 nginx:latest浏览器访问http://localhost:8080能看到 Nginx 欢迎页。2. 进入容器修改内容dockerexec-itmynginxshechoHello Docker/usr/share/nginx/html/index.htmlexit刷新页面内容变成Hello Docker。3. 把容器保存成新镜像dockercommit mynginx mynginx:v1现在docker images里多了一个mynginx:v1。4. 推送到仓库dockertag mynginx:v1 yourname/mynginx:v1dockerlogindockerpush yourname/mynginx:v15. 在其他机器拉取运行dockerpull yourname/mynginx:v1dockerrun-d-p8080:80 yourname/mynginx:v1这就是镜像、容器、仓库协作的完整过程。生产环境不推荐用docker commit而应该用 Dockerfile 构建保证可重复、可审查。七、常见误区镜像不是容器镜像是静态模板容器是动态实例。删镜像前要先删依赖它的容器。容器删除数据就没了容器可写层随容器删除而消失。数据库、上传文件等必须用 volume。latest不是最新版latest只是默认标签不代表最新稳定版。生产建议用明确版本号如nginx:1.25.3。一个仓库可以有多个标签nginx:latest、nginx:1.25、nginx:alpine都属于nginx这个 Repository。仓库和镜像不是一对一仓库是“镜像的集合”标签才是具体版本。八、命令速查表操作命令查看本地镜像docker images拉取镜像docker pull nginx:latest构建镜像docker build -t myapp:v1 .运行容器docker run -d --name myapp -p 8080:80 myapp:v1查看容器docker ps -a进入容器docker exec -it myapp sh提交容器为镜像docker commit myapp myapp:v2打标签docker tag myapp:v1 user/myapp:v1推送镜像docker push user/myapp:v1删除容器docker rm myapp删除镜像docker rmi myapp:v1九、总结再回到那张核心关系图Dockerfile → 镜像 → 容器 ↑ ↓ └─ commit 镜像 ↔ 仓库push / pull镜像是只读模板分层存储可复用。容器是镜像的运行实例有可写层和生命周期。仓库是镜像的远程存放点通过 pull/push 分发。一句话记忆镜像像类容器像对象仓库像远程仓库build造镜像run起容器push/pull走仓库。

相关推荐

【3D Max】保姆级教程:3D Max 2026 版详细图文安装指
【3D Max】保姆级教程:3D Max 2026 版详细图文安装指

软件概述 Autodesk 3ds Max 是业界领先的三维建模、动画和渲染解决方案,广泛应用于建筑可视化、游戏开发、影视特效及产品设计等领域。2026版本在原有功能基础上进行了多项优化,为专业设计师提供更高效的工作流程 核心功能特性 建模系统 多边形建模&a… · 2026/9/27 10:19:29

3步搞定dw怎么做网站布局,兼顾性能优化不踩坑
3步搞定dw怎么做网站布局,兼顾性能优化不踩坑

3步搞定dw怎么做网站布局,兼顾性能优化不踩坑 找建站公司怕被坑高价,最后发现对方连基础布局都没搞对?别慌,今天把dw怎么做网站布局掰开揉碎讲清楚。很多项目经理都踩过这个坑:外包团队收钱时信誓旦旦,交付时却是个“四不像”——桌面端看着还行,… · 2026/9/27 10:19:23

树莓派Python版本管理:安全卸载指定版本与多环境共存指南
树莓派Python版本管理:安全卸载指定版本与多环境共存指南

1. 为什么要在树莓派上折腾Python版本管理树莓派这玩意儿,玩过的人都知道,系统里预装的Python版本往往不是我们想要的那个。你拿到一块全新的树莓派4B或者树莓派5,刷上官方Raspberry Pi OS,打开终端敲python3 --version&#xff0… · 2026/9/27 10:19:23

F2 分组柱状图(Dodge Column Chart)完整实战指南:从基础用法到负值数据适配
F2 分组柱状图(Dodge Column Chart)完整实战指南:从基础用法到负值数据适配

数据可视化前端 【免费下载链接】F2 📱📈An elegant, interactive and flexible charting library for mobile. 项目地址: https://gitcode.com/gh_mirrors/f2/F2 点击查看 免费下载 导读 分组柱状图(Dodge Column Chart&#x… · 2026/9/27 11:14:56

APScheduler 4 技术指南:Python 任务调度器与任务队列的架构、配置与实战
APScheduler 4 技术指南:Python 任务调度器与任务队列的架构、配置与实战

任务调度后端 【免费下载链接】apscheduler Task scheduling library for Python 项目地址: https://gitcode.com/gh_mirrors/ap/apscheduler 点击查看 免费下载 APScheduler(Advanced Python Scheduler)是 Python 生态中成熟的任务调度与任… · 2026/9/27 11:14:56

5分钟装好sentrux:一条命令打开你的代码实时架构Treemap(macOS/Linux/Windows完整指南)
5分钟装好sentrux:一条命令打开你的代码实时架构Treemap(macOS/Linux/Windows完整指南)

5分钟装好sentrux:一条命令打开你的代码实时架构Treemap(macOS/Linux/Windows完整指南) 【免费下载链接】sentrux Real-time architectural sensor that helps AI agents close the feedback loop, enabling recursive self-improvement of c… · 2026/9/27 11:14:56

Copilot for Obsidian 预发布(Prerelease)版本管理实战:从 semver 语义到 GitHub Actions 自动化发布
Copilot for Obsidian 预发布(Prerelease)版本管理实战:从 semver 语义到 GitHub Actions 自动化发布

AI 应用大模型AI Agent交互助手RAG 【免费下载链接】obsidian-copilot Run agents in Obsidian - OpenCode, Codex, Claude Code etc. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-copilot 点击查看 免费下载 导读 本文以开源仓库 obsidian-copilot&am… · 2026/9/27 11:14:32

STM32CubeMX安装失败原因揭秘:路径、JDK11与Windows防护三重硬约束
STM32CubeMX安装失败原因揭秘:路径、JDK11与Windows防护三重硬约束

1. 为什么STM32CubeMX不是“装上就能用”的工具——从新手崩溃现场说起 我第一次在实验室帮学生调试一个基于STM32F407的温控项目,他花了三小时反复重装STM32CubeMX,最后发现根本不是软件问题,而是他把安装包解压到中文路径“D:\嵌入式学习\… · 2026/9/27 11:14:32

mini-SWE-agent 环境体系全解析:local、docker、singularity 与 SWE-ReX 扩展环境的执行架构与实践指南
mini-SWE-agent 环境体系全解析:local、docker、singularity 与 SWE-ReX 扩展环境的执行架构与实践指南

人工智能大模型AI Agent代码智能体 【免费下载链接】mini-swe-agent The 100 line AI agent that solves GitHub issues or helps you in your command line. Radically simple, no huge configs, no giant monorepo—but scores >74% on SWE-bench verified! 项目地址&… · 2026/9/27 11:14:19

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码