ZBLOG

docker中容器和镜像是什么关系

在 Docker 中,镜像(Image)容器(Container) 是核心概念,它们的关系可以通过以下比喻和理解来明确:


1. 镜像(Image)

  • 定义:镜像是只读的模板或蓝图,包含运行应用程序所需的文件系统、依赖、配置和环境(例如代码、运行时环境、库等)。
  • 特点
    • 静态的、不可修改的(类似操作系统的安装光盘)。
    • 通过分层存储(Layer)实现高效复用和共享。
  • 来源:可通过 Dockerfile 构建,或从远程仓库(如 Docker Hub)拉取。

2. 容器(Container)

  • 定义:容器是镜像的运行实例,相当于基于镜像启动的一个独立且轻量级的进程环境。
  • 特点
    • 动态的、可读写(在镜像基础上添加一个可写层)。
    • 容器内的修改不会影响原始镜像,但可以通过提交(docker commit)生成新镜像。
  • 生命周期:可以启动、停止、删除或暂停。

3. 关系类比

  • 镜像 → 类(Class)
    容器 → 对象(Object)
    (镜像是模板,容器是模板的实例化。)

  • 镜像 → 安装包(如 Windows.iso
    容器 → 安装好的操作系统(运行中的系统)。


4. 关键区别

| 特性 | 镜像(Image) | 容器(Container) | |—————-|—————————|———————————–| | 状态 | 只读、静态 | 可读写、动态运行环境 | | 存储方式 | 分层存储(共享底层资源) | 在镜像基础上添加可写层 | | 生成方式 | Dockerfile 构建或拉取 | 通过 docker run 从镜像创建 | | 持久化 | 永久存在 | 停止后可删除,数据需卷(Volume)保存 |


5. 操作示例

   # 从镜像创建并启动容器
   docker run -it ubuntu:20.04 /bin/bash

   # 查看本地镜像列表
   docker images

   # 查看运行中的容器
   docker ps

   # 将容器保存为新镜像
   docker commit <容器ID> my-new-image

6. 总结

  • 镜像是基础,容器是运行态:没有镜像就无法创建容器。
  • 一对一或多对一:一个镜像可以同时启动多个容器(实例),每个容器相互隔离。
  • 数据持久化:容器的改动默认随容器删除而丢失,需通过卷(Volume)或绑定挂载保留数据。

理解这一关系是掌握 Docker 的核心基础!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=24325

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?