aws ecs优化AMI中的私有dockerregistryauthentication不成功
我正在编写一个用于创buildECS自动缩放集群的terraform脚本。 我已经创build了一个集群并添加了ec2容器实例。我的任务定义文件包含一个来自私有docker repository的映像。我通过aws官方文档find一个Private Registry Authentication页面,并尝试了两种方式如那里所述。
- 使用dockercfg
- docker的方式
我把我的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中find数据login到我的容器实例时,但当我尝试手动拉图像时,我显示了一个错误,没有find图像。
然后我尝试dockerlogin命令,并手动input我的凭据,并尝试再次拉那个图像,最终它是成功的。
我不确定是否有一种方法来实现ecs优化图像中的私人dockerregistry身份validation通过用户数据或不自动或如果我做错了什么。
请帮我解决这个问题。
当我尝试手动拉图像时,我显示一个错误,没有find图像
您所遵循的方法向ECS代理提供私有registry凭证,但不提供Docker CLI(Docker CLI将其凭据数据存储在不同的位置)。 由于您已经为代理configuration了凭据,因此您应该能够在私有registry中运行引用图像的任务定义,而无需从Docker CLI手动提取图像。
编辑:它看起来像你可能有一个错误在你的/etc/ecs/ecs.config
文件的实例,由于你如何引用echo
命令。 你会想改变这一行:
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
- Amazon EC2服务器上的/ etc / default / docker文件在哪里?
- “docker-machine rm”在不存在的EC2实例上失败
- Docker容器中的'aws configure'不会使用环境variables或configuration文件
- cron.d中的Crons不会在运行在Docker Container内的Ubuntu上运行
- 如何以root用户Docker Cloud运行docker-compose
- 从ec2实例启动另一个ec2实例并在其上推送一个csv文件
- 将cloudbees ec2泊坞窗图像与泊坞窗中的docker相结合
- 在ec2-server上运行应用程序和在ec2-server的docker上运行应用程序有什么区别?
- AWS ECS如何从一个容器向另一个容器调用服务