--- title: Docker Image type: concept tags: [docker, container, virtualization] last_updated: 2026-04-21 --- # Docker Image ## Definition Docker Image(镜像)是一个轻量级、可执行的独立软件包,包含运行某个软件所需的所有内容:代码、运行时、系统工具、系统库和设置。镜像是 Docker 容器的基础模板。 ## Key Characteristics ### 不可变性(Immutable) - 镜像一旦创建就不能修改 - 对容器的修改只存在于容器层 - 新修改通过创建新镜像实现 ### 分层结构(Layered) - 由多个只读层组成 - 层可以复用,多个镜像共享基础层 - 节省存储空间和传输带宽 ### 可堆叠性(Stackable) - 基于已有镜像构建新镜像 - 使用 Dockerfile 描述构建过程 - 每条指令创建新层 ## Image 结构 ``` Dockerfile ↓ Image = [Layer 3: Application Code] [Layer 2: Dependencies] [Layer 1: Base OS] [Layer 0: BootFS] ``` ## Common Operations ### 查看镜像 ```bash docker images docker image ls ``` ### 拉取镜像 ```bash docker pull nginx:latest docker pull ubuntu:22.04 ``` ### 删除镜像 ```bash docker rmi nginx:latest docker image prune -a # 删除所有未使用镜像 ``` ### 标签管理 ```bash docker tag nginx:latest myregistry/nginx:v1.0 ``` ## Image vs Container | 特性 | Image | Container | |------|-------|-----------| | 状态 | 只读模板 | 可读写实例 | | 生命周期 | 持久 | 临时 | | 数量 | 可复用 | 可多实例 | | 修改 | 不可变 | 写入容器层 | ## Image Transfer Docker 镜像可以在不同主机之间传输,常见方法: ### docker save/load(推荐) ```bash # 导出 docker save -o image.tar nginx:latest # 导入 docker load < image.tar ``` ### docker export/import ```bash # 导出容器 docker export -o container.tar container_id # 导入为镜像 docker import container.tar new_image:latest ``` ### Registry(云端) ```bash # 推送 docker push myregistry/image:tag # 拉取 docker pull myregistry/image:tag ``` ## Related Concepts - [[Docker-Save]]:镜像导出方法 - [[Docker-Load]]:镜像导入方法 - [[Docker-Container]]:镜像的运行实例 - [[Dockerfile]]:镜像构建文件 ## Relationships - [[Docker-Image]] ← 构建 ← [[Dockerfile]] - [[Docker-Image]] ← 实例化 ← [[Docker-Container]] - [[Docker-Image]] ← transferred_via ← [[Docker-Save]] - [[Docker-Image]] ← transferred_via ← [[Docker-Load]] ## Related Entities - [[entities/Docker.md]] ## Notes - 镜像大小取决于基础系统和应用依赖 - 多架构镜像可通过 manifest list 支持不同平台 - 定期清理未使用镜像可释放存储空间