2.7 KiB
2.7 KiB
title, type, tags, last_updated
| title | type | tags | last_updated | |||
|---|---|---|---|---|---|---|
| Docker Image | concept |
|
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
查看镜像
docker images
docker image ls
拉取镜像
docker pull nginx:latest
docker pull ubuntu:22.04
删除镜像
docker rmi nginx:latest
docker image prune -a # 删除所有未使用镜像
标签管理
docker tag nginx:latest myregistry/nginx:v1.0
Image vs Container
| 特性 | Image | Container |
|---|---|---|
| 状态 | 只读模板 | 可读写实例 |
| 生命周期 | 持久 | 临时 |
| 数量 | 可复用 | 可多实例 |
| 修改 | 不可变 | 写入容器层 |
Image Transfer
Docker 镜像可以在不同主机之间传输,常见方法:
docker save/load(推荐)
# 导出
docker save -o image.tar nginx:latest
# 导入
docker load < image.tar
docker export/import
# 导出容器
docker export -o container.tar container_id
# 导入为镜像
docker import container.tar new_image:latest
Registry(云端)
# 推送
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
Notes
- 镜像大小取决于基础系统和应用依赖
- 多架构镜像可通过 manifest list 支持不同平台
- 定期清理未使用镜像可释放存储空间