

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon ECR 中重新標記映像
<a name="image-retag"></a>

透過 Docker 映像資訊清單 V2 結構描述 2 映像，您可以使用 `--image-tag` 命令的 **put-image** 選項以重新標記現有映像。您可以使用 Docker 來重新標記，而不需提取和推送映像。針對較大的映像，此程序節省了重新標記映像所需的大量網路頻寬與時間。

## 重新標記映像 (AWS CLI)
<a name="retag-aws-cli"></a>

**使用 重新標記映像 AWS CLI**

1. 使用 **batch-get-image** 命令以取得映像的映像資訊清單，來重新標記並將其寫入檔案。在此範例中，儲存庫 *amazonlinux* 中擁有 *latest* 標籤的映像資訊清單，被寫入名為 *MANIFEST* 的環境變數。

   ```
   MANIFEST=$(aws ecr batch-get-image --repository-name amazonlinux --image-ids imageTag=latest --output text --query 'images[].imageManifest')
   ```

1. 使用 **put-image** 命令的 `--image-tag` 選項，以新標籤將映像工作資訊清單檔案放至 Amazon ECR。在此範例中，該映像被標記為 *2017.03*。
**注意**  
如果您的 版本無法使用 `--image-tag`選項 AWS CLI，請升級到最新版本。如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》**中的[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)。

   ```
   aws ecr put-image --repository-name amazonlinux --image-tag 2017.03 --image-manifest "$MANIFEST"
   ```

1. 確認您的新映像標籤已連接至您的映像。在下方的輸出中，該映像有標籤 `latest` 與 ` 2017.03`。

   ```
   aws ecr describe-images --repository-name amazonlinux
   ```

   其輸出如下：

   ```
   {
       "imageDetails": [
           {
               "imageSizeInBytes": 98755613,
               "imageDigest": "sha256:8d00af8f076eb15a33019c2a3e7f1f655375681c4e5be157a26EXAMPLE",
               "imageTags": [
                   "latest",
                   "2017.03"
               ],
               "registryId": "aws_account_id",
               "repositoryName": "amazonlinux",
               "imagePushedAt": 1499287667.0
           }
       ]
   }
   ```

## 重新標記映像 (AWS Tools for Windows PowerShell)
<a name="retag-powershell"></a>

**使用 重新標記映像 AWS Tools for Windows PowerShell**

1. 使用 **Get-ECRImageBatch****cmdlet**取得映像的描述，以重新標記並寫入環境變數。在此範例中，儲存庫 *amazonlinux* 中具有*最新* 標籤的映像會寫入環境變數 *\$1Image*。
**注意**  
如果您的系統沒有**Get-ECRImageBatch**** cmdlet**可用的 ，請參閱*AWS Tools for PowerShell 《 使用者指南*》中的[設定 AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)。

   ```
   $Image = Get-ECRImageBatch -ImageId @{ imageTag="latest" } -RepositoryName amazonlinux
   ```

1. 將映像的資訊清單寫入 *\$1Manifest* 環境變數。

   ```
   $Manifest = $Image.Images[0].ImageManifest
   ```

1. 使用 `-ImageTag`的選項，將映像資訊清單**Write-ECRImage**** cmdlet**放入具有新標籤的 Amazon ECR。在此範例中，該映像被標記為 *2017.09*。

   ```
   Write-ECRImage -RepositoryName amazonlinux -ImageManifest $Manifest -ImageTag 2017.09
   ```

1. 確認您的新映像標籤已連接至您的映像。在下方的輸出中，該映像有標籤 `latest` 與 ` 2017.09`。

   ```
   Get-ECRImage -RepositoryName amazonlinux
   ```

   其輸出如下：

   ```
   ImageDigest                                                             ImageTag
   -----------                                                             --------
   sha256:359b948ea8866817e94765822787cd482279eed0c17bc674a7707f4256d5d497 latest
   sha256:359b948ea8866817e94765822787cd482279eed0c17bc674a7707f4256d5d497 2017.09
   ```