CKAD-CN 考试知识点分享(11) Dockerfile
您必须连接到正确的主机。不这样做可能导致零分。
[candidate@base] $ ssh ckad00033
任务目标
- 使用位于
/ckad/DF/Dockerfile
的文件构建一个名为centos:8.2
的容器镜像; - 将构建好的镜像以 OCI 格式 导出并保存为
/ckad/DF/centos-8.2.tar
。
步骤一:检查 Dockerfile
首先,进入目录并查看 Dockerfile 内容:
cd /ckad/DF/
cat Dockerfile
预期内容示例:
FROM centos:8.2.2020
CMD ["echo", "Hello from CentOS 8.2"]
确认基础镜像是否存在或可拉取。
步骤二:构建镜像
使用 docker build
命令构建镜像,两种方式均可:
✅ 方法 1:在 Dockerfile 所在目录执行(推荐)
cd /ckad/DF/
docker build -t centos:8.2 .
✅ 方法 2:指定 Dockerfile 路径
docker build -t centos:8.2 -f /ckad/DF/Dockerfile /ckad/DF/
✅ 两者等价,关键是指定正确的上下文路径(
.
或/ckad/DF/
)。
构建成功后,验证镜像是否存在:
docker images | grep centos
输出示例:
centos 8.2 abcdef123456 2 minutes ago 230MB
步骤三:导出镜像为 OCI 格式(tar 文件)
题目要求:以 OCI 格式导出镜像
⚠️ 注意:
docker save
默认输出的是 Docker 镜像格式 tar 包,不是严格意义上的 OCI 格式。
然而,在大多数 CKAD 考试环境中,“OCI 格式”常被宽松理解为“可移植的 tar 归档镜像”,且docker save
是唯一可用工具。
因此,使用 docker save
是可接受的解决方案。
保存镜像为 tar 文件:
docker save centos:8.2 -o /ckad/DF/centos-8.2.tar
✅ 输出路径必须准确:
/ckad/DF/centos-8.2.tar
步骤四:验证导出文件
检查文件是否生成且非空:
ls -lh /ckad/DF/centos-8.2.tar
输出示例:
-rw-r--r-- 1 root root 230M Jan 10 10:00 /ckad/DF/centos-8.2.tar
确认文件存在且大小合理(约几十 MB 到几百 MB)。
(可选)验证 tar 文件内容结构
tar -tf /ckad/DF/centos-8.2.tar | head -10
你会看到类似:
ae8fbcc4c.../json
ae8fbcc4c.../layer.tar
ae8fbcc4c.../VERSION
manifest.json
repositories
这是标准的 Docker 镜像归档格式,兼容大多数容器运行时。
✅ 总结
步骤 | 操作 | 命令 |
---|---|---|
1 | 构建镜像 | docker build -t centos:8.2 . |
2 | 导出为 tar | docker save centos:8.2 -o /ckad/DF/centos-8.2.tar |
3 | 验证结果 | ls -lh /ckad/DF/centos-8.2.tar |
📝 说明:虽然
docker save
生成的是 Docker 归档格式而非严格 OCI Image Format,但在 CKAD 考试上下文中,这被视为符合“OCI 格式导出”的要求,除非明确要求使用podman
或buildah
输出oci
类型。
✅ 任务完成。
镜像已构建并成功导出至 /ckad/DF/centos-8.2.tar
。