# 镜像（Images）

URL: https://caijiao.org/docker/core/images
Source: docs/docker/core/images.md
Description: 本章节系统讲解 Docker 镜像的概念、构建方法、存储与版本管理，以及如何优化镜像体积和使用多阶段构建，提高开发和部署效率。

Docker 镜像是构建容器的基础，它是一个包含应用程序及其运行环境的只读模板。通过镜像可以快速创建可重复的容器实例，实现环境一致性和高效部署。

## 1. 镜像的组成

- **基础镜像（Base Image）**：最底层的操作系统或运行时环境，如 `ubuntu:20.04`
- **中间层（Intermediate Layers）**：每条 Dockerfile 指令都会生成一层
- **只读文件系统（Read-Only FS）**：镜像本身是只读的，容器运行时在其上增加可写层

## 2. 获取镜像

从 Docker Hub 或其他 Registry 下载：

```bash
docker pull ubuntu:20.04
docker pull nginx:latest
````

查看本地镜像列表：

```bash
docker images
```

## 3. 构建镜像

通过 Dockerfile 构建自定义镜像：

```dockerfile
# Dockerfile 示例
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
```

构建镜像命令：

```bash
docker build -t myapp:1.0 .
```

## 4. 镜像管理

- **删除镜像**：

```bash
docker rmi myapp:1.0
```

- **打标签**：

```bash
docker tag myapp:1.0 myregistry.com/myapp:1.0
```

- **推送到 Registry**：

```bash
docker push myregistry.com/myapp:1.0
```

## 5. 镜像优化

- 使用多阶段构建（Multi-stage build）减小镜像体积
- 合理选择基础镜像（如 `alpine`）
- 合并命令减少层数

---

理解 Docker 镜像是掌握容器化的关键，本章为你后续容器创建、运行与部署奠定基础。
