[英]Private docker registry authentication in aws ecs optimized AMI is not successful
我正在编写一个用于创建ECS自动缩放集群的terraform脚本。 我创建了一个集群并在其中添加了ec2容器实例。我的任务定义文件包含来自私有docker存储库的图像。我查看了aws官方文档,找到了私有注册表身份验证的页面,并尝试了这两种方式如那里所述。
我把我的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.