Docker 三大核心组件详解:镜像、容器、仓库(附分层原理 + 示例)

前言

学习 Docker,镜像、容器、仓库 是必须吃透的三大核心概念,三者构成了 Docker 完整的工作闭环:镜像用于构建、容器用于执行、仓库用于分发。本文结合原理图解、通俗讲解与实操示例,帮你彻底搞懂三者的定义、关系及底层分层机制,适合 Docker 入门进阶学习。

一、Docker 整体工作逻辑

Docker 的核心流转逻辑可以概括为:构建镜像 → 运行容器 → 分发仓库,三者关系如下:

  • 镜像(Images):构建,静态模板;
  • 容器(Container):执行,镜像运行后的动态实例;
  • 仓库(Repositories):分发,存储、共享镜像的平台。

简单理解:镜像是模板,容器是运行起来的应用,仓库是存放模板的云端仓库

二、Docker 镜像(Images):静态只读的应用模板

1. 什么是 Docker 镜像

容器能够取代传统虚拟机,核心原因就是 Docker 镜像技术 。Docker 镜像本质是一个压缩包,包含完整操作系统的文件、依赖、运行环境、应用程序,和本地开发 / 测试环境系统完全一致。核心特点:

  1. 分层架构:镜像由多层文件系统堆叠而成;
  2. 只读不可修改:镜像本身是静态文件,运行时不能直接修改;
  3. 一次构建,到处运行,是创建容器的基础模板。

2. 镜像分层原理(重点)

Docker 镜像采用分层存储机制,每一层只记录变更的文件,下层文件可被多个上层镜像复用,极大节省存储空间。

  • 基础层:操作系统内核、基础系统(如 Ubuntu、CentOS);
  • 中间层:安装的依赖、软件(如 VIM、Nginx);
  • 顶层:应用程序及配置;
  • 所有镜像层均为只读,不可修改。

举个例子:基于 Ubuntu 系统,依次安装 VIM、Nginx,就会形成多层镜像:

镜像修改逻辑:修改镜像内文件,不会直接覆盖原文件,而是在上层生成新文件,屏蔽下层旧文件;最终系统看到的是多层合并后的完整视图。

3. Dockerfile 构建镜像示例

Dockerfile 是构建镜像的脚本,每一条RUN命令会生成一层镜像。

冗余写法(生成 3 层镜像)
复制代码
FROM centos
RUN yum -y install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz
优化写法(合并为 1 层,减少镜像层数)
复制代码
FROM centos
RUN yum -y install wget && \
    wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" && \
    tar -xvf redis.tar.gz

优化原则:尽量合并RUN指令,减少镜像层数,缩小镜像体积。

三、Docker 容器(Container):镜像运行的动态实例

1. 镜像与容器的关系

  • 镜像:静态,只读模板,相当于软件安装包;
  • 容器:动态,镜像运行后的实例,相当于运行中的软件;
  • 容器由只读镜像层 + 顶部可读写容器层组成。

2. 容器分层结构

容器在镜像的所有只读层之上,新增一层可读写的容器层

  • 镜像层:全部只读,共享复用;
  • 容器层:唯一可读写,所有修改、新增、删除操作都在此层完成;
  • 生命周期:容器消亡,容器层数据随之销毁。

3. 容器核心特性

  1. 可被创建、启动、停止、删除、暂停;

  2. 可理解为一个或一组相互依赖的服务

  3. 启动容器核心命令:

    后台运行容器,images为镜像名称/ID

    docker run -d images

四、Docker 仓库(Repositories):镜像的存储分发平台

Docker 仓库是用来存放、共享、分发 Docker 镜像 的平台,分为公共仓库私有仓库两大类。

1. 公共仓库

  • 官方仓库:Docker Hubhttps://hub.docker.com),全球最大镜像仓库,拥有海量官方镜像(Nginx、MySQL、Redis 等),可免费下载;
  • 国内公共源:阿里云镜像仓库、网易蜂巢等,用于加速国内镜像拉取。

2. 私有仓库

企业内部使用,存放自定义镜像,保障安全与内网访问,常见工具:

  • Harbor(VMware 开源,企业级私有仓库);
  • Docker Registry(Docker 官方简易私有仓库)。

五、总结

  1. 镜像:静态只读分层模板,构建应用环境,Dockerfile 用于构建镜像;
  2. 容器:镜像运行实例,拥有独立可读写层,实现应用运行;
  3. 仓库:镜像存储平台,分为公共 / 私有仓库,实现镜像分发共享。

三者配合,完美实现 Docker Build(构建)、Ship(分发)、Run(运行) 的核心流程,也是容器化部署的基础。

相关推荐
2401_868534782 小时前
2025下半年网络规划设计师真题(选择题、案例分析)
运维·服务器·网络
Urbano2 小时前
22 道工序、核心难点与自动化升级方案
运维·自动化
Urbano2 小时前
工装裤与外套缝制自动化对比:真实设备选型与工艺适配指南
运维·自动化
小狮子&2 小时前
ubuntu2604无法共享文件夹问题解决
linux·运维·服务器
biter down2 小时前
3:VMware Workstation 安装 Ubuntu 22.04 超详细教程
linux·运维·ubuntu
zhping10112 小时前
Ubuntu 登录密码忘记
运维·服务器·ubuntu
wh_xia_jun2 小时前
Playwright 自动化实战指南 - 以 12306 余票查询为例
运维·自动化
Benszen2 小时前
Secret详解
linux·运维·服务器
极验3 小时前
智能体时代的自动化对抗:Agent Bot 与隐匿技术共舞
运维·自动化
shushangyun_3 小时前
汽车服务行业B2B平台+AI解决方案哪家专业:2026年最新测评
java·运维·网络·数据库·人工智能·汽车