您必须连接到正确的主机。不这样做可能导致零分。
[candidate@base] $ ssh ckad00033


任务目标

  1. 使用位于 /ckad/DF/Dockerfile 的文件构建一个名为 centos:8.2 的容器镜像;
  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导出为 tardocker 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。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐