迁移清单

Table of contents

使用此清单确保您在迁移到 Docker Hardened Images 时考虑到了所有关键事项。

迁移注意事项

项目 需要执行的操作
基础镜像 更新 Dockerfile 中的 FROM 语句,引用 Docker Hardened Image 而非当前的基础镜像。
包管理 仅在构建阶段使用 dev 标签的镜像安装包。对于基于 Alpine 的镜像使用 apk,对于基于 Debian 的镜像使用 apt。将必要的构件复制到运行时阶段,因为运行时镜像不包含包管理器。
非 root 用户 验证您的应用程序所需的所有文件和目录对非 root 用户(UID 65532)可读可写,因为运行时镜像默认以非 root 身份运行。
多阶段构建 在需要构建工具和包管理器的构建阶段使用 devsdk 标签的镜像。在最终运行时阶段使用非 dev 镜像。
TLS 证书 移除任何安装 ca-certificates 的步骤,因为 DHI 默认包含 ca-certificates。
端口 配置您的应用程序在容器内监听 1025 或更高端口,因为非 root 用户无法绑定到特权端口(低于 1024)在 Kubernetes 或早于 20.10 版本的 Docker Engine 中。
入口点 使用 docker inspect 或镜像文档检查所选 DHI 的入口点。如果您的应用程序依赖不同的入口点,请更新 Dockerfile 的 ENTRYPOINTCMD 指令。
无 shell 将任何 shell 命令(RUNSHELL)移至使用 dev 标签镜像的构建阶段。运行时镜像不包含 shell,因此从构建阶段复制所有必要构件。