创建透明的Docker网络会破坏AWS CLI

时间:2018-02-13 15:35:03

标签: docker amazon-ec2 aws-cli docker-for-windows

我正在运行Docker版本17.06.2-ee-6,在Amazon EC2,Windows Server 2016上构建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)。仍然不知道为什么。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并通过添加第二个NIC并更改将169.254.169.254定向到新NIC的路由来解决此问题。

  1. route print将在Interface List部分下方的顶部显示NIC索引
  2. route -p delete 169.254.169.254删除了旧路线
  3. route -p add 169.254.169.254 mask 255.255.255.255 <gateway> IF <interface id from step 1>将通过第二个nic将流量引导至元数据api