Amazon web services 与凭证文件斗争

Amazon web services 与凭证文件斗争,amazon-web-services,docker-machine,Amazon Web Services,Docker Machine,我将在AWS上部署Docker容器,凭证文件格式如下: [default] aws_access_key_id = KEY aws_secret_access_key = KEY region=eu-west-2 vpc-id=vpc-bb1b7fd3 并位于~/.aws/credentials 当我执行命令时,docker machine create--driver amazonec2 app 我得到: 已定义默认VPC-ID。有人能帮我解决这个问题或者给我指出正确的方向吗 我正在使用的命

我将在AWS上部署Docker容器,凭证文件格式如下:

[default]
aws_access_key_id = KEY
aws_secret_access_key = KEY
region=eu-west-2
vpc-id=vpc-bb1b7fd3
并位于
~/.aws/credentials

当我执行命令时,
docker machine create--driver amazonec2 app
我得到:

已定义默认VPC-ID。有人能帮我解决这个问题或者给我指出正确的方向吗

我正在使用的命令

docker-machine create --driver amazonec2 --amazonec2-access-key AKIAyyy --amazonec2-secret-key AKIAxxx --amazonec2-region eu-west-2 --amazonec2-vpc-id vpc-bb1b7fd3 flask_app
当我尝试使用文件系统中的凭据文件时:

docker-machine create --driver amazonec2 flask_app
其中,
vpc-bb1b7fd3
默认由AWS生成,因此必须有效且时间也正确。我还试着交换钥匙,以防我设法交换了钥匙,但它们也没问题。sudo ntpdate ntp.ubuntu.com的输出与机器的系统时间相同

错误说明:
预创建检查错误:“身份验证失败:AWS无法验证提供的访问凭据\n\t状态代码:401,请求id:9d642d91-cd93-4104-b9fb-2a42b1249e3b”

已尝试:
在堆栈交换上,通过重新启动Docker守护进程解决了非常类似的问题,因为当计算机处于睡眠状态并再次唤醒时,Docker的时钟停止将其时间与计算机的时间同步。我重新启动了Docker守护进程,没有任何更改。仍然是相同的错误。

问题不在于钥匙,因此可能有两个原因

  • 你的系统时间不对
  • 无效的VPC ID
你应该检查你的计算机的时钟可能是错误的,即使它设置为“从internet自动更新”。尝试运行以下操作将修复计算机的时钟

sudo ntpdate ntp.ubuntu.com

或者根据您的操作系统运行

第二个原因似乎是您的命令中缺少一些标志,如果时间不起作用,请使用命令更新问题

专有网络ID

我们在命令开始时确定您的默认VPC ID。在某些方面 案例,可能是因为您的帐户没有默认vpc,或者您 如果不想使用默认值,可以使用 --amazonec2专有网络id标志

登录AWS控制台,进入
服务->专有网络->您的专有网络
。定位 要从VPC列中获取的VPC ID。转到
服务->专有网络->
子网
。检查
可用区
列,以验证
可用区
a 存在并匹配您的
专有网络ID
。例如,
us-east1-a
位于a中 可用区。如果a分区不存在,则可以创建新分区
子网
在该区域中,或在创建 机器

要创建具有非默认VPC-ID的计算机,请执行以下操作:

docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-****** aws02
本例假设在a可用性区域中找到了
VPC ID
。使用
--amazonec2区域标志
指定a区域以外的区域。例如,
--amazonec2区域c
表示
us-east1-c


通过从AWS下载rootkey.csv并将其移动到
~/.AWS

Docker实例现在已上载到AWS。

我可能需要联系AWS帮助台。我不想整个星期都被困在这个问题上。我注意到这是互联网上很常见的问题。但解决方案并不常见。
docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-****** aws02