

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

# 将 Podman 与 Amazon ECR 结合使用
<a name="Podman"></a>

将 Podman 与 Amazon ECR 结合使用使组织能够利用 Podman 的安全性和简单性，同时受益于用于容器映像管理的 Amazon ECR 的可扩展性和可靠性。通过遵循概述的步骤和命令，开发人员和管理员可以简化其容器工作流，增强安全性并优化资源利用率。随着容器化的发展势头不断增强，使用 Podman 和 Amazon ECR 为管理和部署容器化应用程序提供了强大而灵活的解决方案。

## 使用 Podman 通过 Amazon ECR 进行身份验证
<a name="authentication-with-ecr"></a>

在使用 Podman 与 Amazon ECR 进行交互之前，需要进行身份验证。可以通过以下方式来完成此操作：运行 ``aws ecr get-login-password`` 命令来检索身份验证令牌，然后将该令牌与 ``podman login`` 命令一起使用，以通过 Amazon ECR 进行身份验证。

```
aws ecr get-login-password --region <region> | podman login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
```

## 将 Amazon ECR 凭证助手与 Podman 配合使用
<a name="registry-auth-credential-helper-pod"></a>

Amazon ECR 提供了可与 Podman 配合使用的 Docker 凭证助手。凭证助手使得推送映像到 Amazon ECR 和从其提取映像时更容易存储和使用 Docker 凭证。有关安装和配置步骤，请参阅 [Amazon ECR Docker 凭证辅助程序](https://github.com/awslabs/amazon-ecr-credential-helper)。

**重要**  
Podman 仅部分支持该 docker-creds-helper规范。Podman 支持 Docker 配置中的 `credHelpers` 关键字，但不支持 `credsStore` 关键字。  
要将 Amazon ECR 凭证助手与 Podman 配合使用，请使用 `credHelpers` 格式配置您的 Docker 配置文件：  

```
{
    "credHelpers": {
        "public.ecr.aws": "ecr-login",
        "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "ecr-login"
    }
}
```
Podman 不支持以下 `credsStore` 配置：  

```
{
    "credsStore": "ecr-login"
}
```

**注意**  
目前，Amazon ECR Docker 凭证助手不支持多重身份验证 (MFA)。

## 使用 Podman 从 Amazon ECR 提取映像
<a name="pulling-images-from-ecr"></a>

成功进行身份验证后，可以使用带有完整 Amazon ECR 存储库 URI 的 ``podman pull`` 命令从 Amazon ECR 中提取容器映像。

```
podman pull aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag
```

## 使用 Podman 运行 Amazon ECR 的容器
<a name="running-containers-ecr"></a>

提取所需映像后，可以使用 ``podman run`` 命令实例化容器。

```
podman run -d aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag
```

## 使用 Podman 将映像推送到 Amazon ECR
<a name="pushing-images-to-ecr"></a>

要将本地映像推送到 Amazon ECR，必须首先使用 ``podman tag`` 为映像标记 Amazon ECR 存储库 URI，然后才能使用 ``podman push`` 命令将映像上传到 Amazon ECR。

```
podman tag local_image:tag aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag 
podman push aws_account_id.dkr.ecr.region.amazonaws.com/repository_name:tag
```