Complete Dockerfile instruction reference list

This commit is contained in:
yeasy
2026-04-27 23:17:39 +00:00
parent 3d3befa16a
commit 16203c5018
16 changed files with 86 additions and 102 deletions
+11 -11
View File
@@ -46,21 +46,21 @@ Docker 镜像的大小可能与我们通常理解的文件大小有所不同,
| 位置 | 显示大小 | 说明 |
|------|---------|------|
| Registry / Docker Hub 页面 | 常见为压缩后的分发大小或单平台视角 | 便于传输与分发 |
| `docker image ls` | 本地镜像及其父层累计占用大小 | 更接近主机上的实际展开占用 |
| Docker Hub | 29MB | 压缩后的网络传输大小 |
| docker image ls | 78MB | 本地解压后的实际大小 |
#### 实际磁盘占用
由于镜像是分层存储**只有基于相同父层构建** 的镜像才会共享相同层
由于镜像是分层存储不同镜像可能共享相同
```bash
python:3.12-slim myapp:web myapp:worker
│ │ │
└───────┬───────┘ │
共享父层与依赖层 ◄──────────┘
ubuntu:24.04 nginx:latest redis:latest
│ │
└───────┬───────┘
共享基础层 ◄───────────────────┘
```
因此`docker image ls` 中各镜像大小之和通常会大于实际磁盘占用共享层只会在磁盘上保存一次
因此`docker image ls` 中各镜像大小之和 > 实际磁盘占用
#### 查看实际空间占用
@@ -164,9 +164,9 @@ $ docker image prune
```bash
$ docker images -a
```
会显示默认隐藏的中间层和虚悬镜像其中一部分可能来自构建过程并被其他镜像复用
会显示很多无标签镜像这些是构建过程中产生的中间层被其他镜像依赖
> 一般不要手动逐个处理这些无标签项优先删除顶层镜像使用 `docker image prune` 清理无用镜像 Docker 自行回收不再被引用的
> 不要删除中间层镜像它们是其他镜像的依赖删除会导致上层镜像无法使用删除顶层镜像时会自动清理不再需要的中间
---