我正在运行Docker版本17.06.2-ee-6,在Windows Server 2016的Amazon EC2上构建e75fdb8。实例角色有权从一个特定的S3存储桶获取文件:
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-s3-bucket/*"
]
}
通常,如果我运行
aws s3 cp s3://my-s3-bucket/my-file .
,它将成功下载。但是,如果我使用以下命令创建透明的Docker网络:docker network create -d transparent networkName
然后运行相同的AWS CLI命令,它将返回
fatal error: Unable to locate credentials
如果我再删除该网络
docker network rm [thatNetwork]
下载将再次起作用。
为什么创建透明网络会产生这种影响?
编辑:看起来它正在访问被阻止的AWS元数据IP地址(169.254.169.254)。还是不知道为什么。
最佳答案
我遇到了同样的问题,并通过添加第二个NIC并更改将169.254.169.254定向到新NIC的路由来解决此问题。
route print
将在Interface List
部分route -p delete 169.254.169.254
删除了旧路线route -p add 169.254.169.254 mask 255.255.255.255 <gateway> IF <interface id from step 1>
将通过第二个nic 关于docker - 创建透明的Docker网络会破坏AWS CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48770336/