繁体   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