Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS弹性豆茎&x27;CannotPullContainerError';用于专用docker映像(多实例)_Amazon Web Services_Docker_Amazon Elastic Beanstalk_Dockerhub - Fatal编程技术网

Amazon web services AWS弹性豆茎&x27;CannotPullContainerError';用于专用docker映像(多实例)

Amazon web services AWS弹性豆茎&x27;CannotPullContainerError';用于专用docker映像(多实例),amazon-web-services,docker,amazon-elastic-beanstalk,dockerhub,Amazon Web Services,Docker,Amazon Elastic Beanstalk,Dockerhub,我有一个单实例elastic beanstalk环境,它运行docker映像,作为Dockerhub上的私有映像托管。这个很好用。我正在尝试创建一个新的多容器环境,它运行完全相同的映像(加上另一个映像,在这里的代码示例中没有提到)。在多容器环境中,我无法让elastic beanstalk启动我的docker映像,我得到以下错误: ECS任务已停止,原因是:任务启动失败。(img1_名称:img2_名称:CannotPullContainerError:来自守护程序的错误响应:拒绝用户/repo

我有一个单实例elastic beanstalk环境,它运行docker映像,作为Dockerhub上的私有映像托管。这个很好用。我正在尝试创建一个新的多容器环境,它运行完全相同的映像(加上另一个映像,在这里的代码示例中没有提到)。在多容器环境中,我无法让elastic beanstalk启动我的docker映像,我得到以下错误:

ECS任务已停止,原因是:任务启动失败。(img1_名称:img2_名称:CannotPullContainerError:来自守护程序的错误响应:拒绝用户/repo的拉取访问,存储库不存在或可能需要“docker登录”:拒绝:拒绝请求的资源访问)

以下是适用于我的单实例环境的dockerrun:

{
  "AWSEBDockerrunVersion": "1",
  "Authentication": {
    "Bucket": "my_bucket",
    "Key": ".dockercfg"
  },
  "Image": {
    "Name": "user/repo:tag",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": 5000,
      "HostPort": 443
    }
  ],
  "Logging": "/var/log/nginx"
}
下面是.dockerfcg文件:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "my_token"
        }
    }
}
同样,上述方法也很有效

我的多实例dockerrun文件如下:

{
  "AWSEBDockerrunVersion": "2",
  "authentication": {
    "bucket": "my_bucket",
    "key": ".dockercfg"
  },
  "containerDefinitions": [
    {
      "name": "img_name",
      "image": "user/repo:tag",
      "essential": true,
      "memoryReservation": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 5000
        }
      ]
    }
  ],
  "Logging": "/var/log/nginx"
}
我已将ssh连接到elastic beanstalk实例中,并运行以下操作以检查它是否能够从我的s3 bucket访问.dockercfg:
aws s3api获取对象--bucket mybucket--key dockercfg dockercfg

我还尝试了各种不同格式的.dockercfg文件,包括

{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}

我对此非常恼火,我在这里和AWS论坛上发现了一些类似的帖子,但似乎没有什么能解决我的问题。非常感谢您的帮助。

您尝试过用户名和密码格式吗?里面说Docker Hub使用身份验证文件的用户名和密码样式?您使用的是AL2还是AL1?水桶在同一地区吗?您能否手动提取该图像以排除任何非EB问题?Docker版本1.7及更高版本将使用第二种形式(不含电子邮件)作为Docker配置文件,而较旧版本将使用第一种形式。你明白了吗?@josephmisiti最终我让它工作了(不知怎么的),但我认为我从来没有真正明白出了什么问题。我的dockerrun文件看起来仍然与我文章中的(多实例)示例相同。“.dockercfg”文件现在看起来与我文章中的第二个示例相同。也许我用错了证件或者别的什么。不幸的是,这不是一个非常明确的结果。
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}