欢迎光临
我们一直在努力

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

前言

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

一、Docker 整体工作逻辑

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

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

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

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

1. 什么是 Docker 镜像

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

  • 分层架构:镜像由多层文件系统堆叠而成;
  • 只读不可修改:镜像本身是静态文件,运行时不能直接修改;
  • 一次构建,到处运行,是创建容器的基础模板。
  • 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. 容器核心特性

  • 可被创建、启动、停止、删除、暂停;
  • 可理解为一个或一组相互依赖的服务;
  • 启动容器核心命令:
  • # 后台运行容器,images为镜像名称/ID
    docker run -d images

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

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

    1. 公共仓库

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

    2. 私有仓库

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

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

    五、总结

  • 镜像:静态只读分层模板,构建应用环境,Dockerfile 用于构建镜像;
  • 容器:镜像运行实例,拥有独立可读写层,实现应用运行;
  • 仓库:镜像存储平台,分为公共 / 私有仓库,实现镜像分发共享。
  • 三者配合,完美实现 Docker Build(构建)、Ship(分发)、Run(运行) 的核心流程,也是容器化部署的基础。

    赞(0)
    未经允许不得转载:171主机测评 » Docker 三大核心组件详解:镜像、容器、仓库(附分层原理 + 示例)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址