当前位置: 首页 > news >正文

Docker 镜像与容器的区别

Docker 镜像与容器的区别

Docker 镜像和容器是 Docker 技术的两个核心概念,它们之间的关系类似于面向对象编程中"类"和"实例"的关系。

Docker 镜像 (Image)

  1. 定义:静态的、只读的模板文件,包含运行应用所需的所有依赖项和配置
  2. 特点
    • 不可更改(只读)
    • 由多层文件系统组成(Union File System)
    • 存储在 Docker 仓库中
    • 通过 Dockerfile 构建而成
  3. 用途
    • 作为创建容器的基础
    • 可以共享和分发

Docker 容器 (Container)

  1. 定义:镜像的运行实例,是一个轻量级的、可执行的软件包
  2. 特点
    • 可读写(在镜像层之上添加一个可写层)
    • 是运行时的环境
    • 具有自己的进程、网络、文件系统等隔离环境
    • 生命周期有限(可以启动、停止、删除)
  3. 用途
    • 实际运行应用程序
    • 提供隔离的执行环境

关键区别

特性镜像 (Image)容器 (Container)
状态静态、只读动态、可读写
存储存储在 Docker 仓库运行在主机内存中
生命周期持久存在临时存在(可以随时创建和销毁)
可修改性不可直接修改可以修改(通过可写层)
数量关系一个镜像可以创建多个容器一个容器基于一个镜像创建

关系比喻

  • 镜像 像是软件的"安装包"(如 .exe 或 .dmg 文件)
  • 容器 像是安装后正在运行的软件

当运行 docker run 命令时,Docker 会从指定的镜像创建一个新的容器实例。多个容器可以基于同一个镜像创建,每个容器运行时都会在镜像的只读层之上添加一个可写层。

相关文章:

  • ROS学习之服务通信
  • Android11 Settings详解
  • 【统计术语】
  • Dart 类型系统与 GetX 类型写法完整指南
  • yarn create vite报错:文件名、目录名或卷标语法不正确。 error Command failed.
  • 【嵌入式】鲁班猫玩法大全
  • E结构体基础.go
  • 01.线性代数是如何将复杂的数据结构转化为可计算的数学问题,这个过程是如何进行的
  • FPGA基础 -- Verilog 结构建模之端口的不同位宽处理机制
  • flink如何基于Pekko实现RPC调用
  • openKylin适配RISC-V高性能服务器芯片,携手睿思芯科共拓智算新蓝海
  • ROS学习之动作通信
  • LangChain4j入门学习项目
  • 解决Vue再浏览器的控制台中更新属性不生效
  • Zephyr boot
  • 电池自动点焊机:技术革新下的电池制造核心引擎
  • FastMCP框架进行MCP开发:(一)基础环境搭建及测试
  • 新生活的开启:从 Trae AI 离开后的三个月
  • 如何在 Windows 上实时显示键盘操作?
  • C++ 面向对象特性详解:继承机制
  • 外贸网站的公司介绍/小红书seo软件
  • 如何手机做任务赚钱的网站/百度竞价可以自学吗
  • 能看人与动物做的网站/chatgpt网址
  • 个人做网站还是公众号赚钱好/软件推广平台
  • 凡科建站加盟靠谱吗/湘潭seo公司
  • 查看注册过的网站/杭州网站优化