

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自定义映像的注意事项
<a name="docker-custom-images-considerations"></a>

自定义 Docker 映像时，您可精细地选择精确的任务运行时间。使用此功能时，请考虑以下最佳实践。其中包括安全、配置和安装映像方面的注意事项：
+ 安全是双方共同承担AWS的责任。您负责对添加到映像中的二进制文件进行安全修补。按照[Amazon EMR on EKS 安全最佳实践](security-best-practices.md)中的说明操作，特别是[获取自定义镜像的最新安全更新](security-best-practices.md#security-custom-image)和[采用最低特权原则](security-best-practices.md#security-least-privilege)。
+ 自定义基础映像时，请务必将 Docker 用户更改为 `hadoop:hadoop`，以确保不使用根用户运行任务。
+ Amazon EMR on EKS 会在运行时将文件挂载到映像的配置之上，例如 `spark-defaults.conf`。要覆盖这些配置文件，我们建议您在提交任务期间使用 `applicationOverrides` 参数，而不是仅直接在自定义映像中修改文件。
+ Amazon EMR on EKS 会在运行时挂载某些文件夹。对这些文件夹所做的任何修改都不可用于容器中。如果要为自定义映像添加应用程序或其依赖项，我们建议您选择不属于以下预定义路径的目录：
  + `/var/log/fluentd`
  + `/var/log/spark/user`
  + `/var/log/spark/apps`
  + `/mnt`
  + `/tmp`
  + `/home/hadoop`
+ 您可以将自定义映像上传到任何 Docker-compatible 存储库，例如 Amazon ECR、Docker Hub 或私有企业存储库。有关使用所选 Docker 存储库配置 Amazon EKS 集群身份验证的更多信息，请参阅[从私有仓库拉取镜像](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)。

**重要**  
每当 Pod 使用从亚马逊 EMR 运行时派生的图像时，即使您将自定义图像存储在自己的私有注册表中并使用自己的编排方法（例如 StartJobRun API、Spark 运算符或 spark-submit），EKS 上的标准 Amazon EMR 定价也适用。有关更多信息，请参阅 E [KS 定价上的 Amazon EMR](https://aws.amazon.com/emr/pricing/#Amazon_EMR_on_Amazon_EKS)。