尝试从AWS Elastic Beanstalk Multicontainer中的私有Docker存储库中提取时出现CannotPullContainerError

vaqhlq81  于 2023-03-01  发布在  Docker
关注(0)|答案(1)|浏览(98)

我正在使用AWS Elastic Beanstalk来运行一个多容器Docker构建,并且遇到了让我的私有Docker存储库工作的问题。
我已经创建了一个"dockercfg.json"文件来保存我的授权,如下所示:

{"https://index.docker.io/v1/":{"auth":"59...22","email":"ra...@...com"}}

并将其上传到与我的EB示例相同区域中的S3存储桶中,然后创建一个Dockerrun.aws.json文件,如下所示:

{
  "AWSEBDockerrunVersion": 2,
  "authentication": {
    "bucket": "hayl-docker",
    "key": "dockercfg.json"
  },
  "containerDefinitions": [
    {
      "name": "hayl",
      "image": "raddishiow/hayl-docker:uwsgi",
      "essential": true,
      "memory": 512,
      "portMappings": [
        {
          "hostPort": 443,
          "containerPort": 443
        }
      ]
    }
  ]
}

但我总是收到这样的错误:
已停止,原因是无法取出容器错误:守护程序的错误响应:raddishiow/hayl-docker的拉入访问被拒绝,存储库不存在或可能需要"docker登录"
我已经验证了AWS能够访问"docker cfg.json"文件。我不确定它是否使用了凭据...
我已经将docker存储库简单地更改为public,它成功地拉取,但这不是一个真正的选项,因为图像包含敏感代码,我不希望在公共领域。
我使用的auth令牌是使用docker网站创建的,因为我的本地docker配置文件没有存储我的登录信息......我试过手动base64编码我的密码,就像docker将其存储在配置文件中一样,但这也不起作用。
任何帮助都将不胜感激,因为我已经为这件事烦恼了好几天了。

ia2d9nvy

ia2d9nvy1#

原来“auth”令牌必须从编码为base64的用户名和密码生成,格式为“用户名:密码”。

相关问题