簡體   English   中英

aws ecs優化AMI中的私有docker注冊表身份驗證不成功

[英]Private docker registry authentication in aws ecs optimized AMI is not successful

我正在編寫一個用於創建ECS自動縮放集群的terraform腳本。 我創建了一個集群並在其中添加了ec2容器實例。我的任務定義文件包含來自私有docker存儲庫的圖像。我查看了aws官方文檔,找到了私有注冊表身份驗證的頁面,並嘗試了這兩種方式如那里所述。

  1. 使用dockercfg
  2. 碼頭工人的方式

我把我的ecs.config文件放在S3存儲桶中,在實例啟動時我將用戶數據傳遞給了

#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://<my_bucket_name>/ecs.config /etc/ecs/ecs.config

在我的第二種方法中,我將使用過的數據作為

echo "ECS_ENGINE_AUTH_TYPE=docker" >>/etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}"  >>/etc/ecs/ecs.config

登錄到我的容器實例時,我在/etc/ecs/ecs.config中找到了數據但是當我嘗試手動拉動圖像時,我向我顯示一個錯誤,沒有找到圖像。

然后我在那里嘗試docker login命令並手動輸入我的憑據並嘗試再次拉出該圖像並最終成功。

我不確定是否有辦法通過用戶數據自動實現ecs優化圖像中的私有docker注冊表身份驗證或者是否做錯了。

請幫我解決這個問題。

在此輸入圖像描述

當我嘗試手動拉動圖像時,我向我顯示沒有找到圖像的錯誤

您所遵循的方法為ECS代理提供私有注冊表憑據,但不提供Docker CLI(Docker CLI將其憑據數據存儲在其他位置)。 由於您已為代理配置了憑據,因此您應該能夠在私有注冊表中運行引用映像的任務定義,而無需手動從Docker CLI中提取映像。

編輯:由於您引用echo命令的方式,您的/etc/ecs/ecs.config文件中可能出現錯誤。 你想要改變這一行:

echo "ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}"  >>/etc/ecs/ecs.config

echo 'ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}'  >>/etc/ecs/ecs.config

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM