如何让docker在amazon vpc中工作?(ip分配协调)

如何让docker在amazon vpc中工作?(ip分配协调)

有没有办法阻止 VPC 中的一系列 IP?

或者有没有办法让 docker(docker compose)使用 dhcp 获取 ip 地址?如果这样做,它们是否会被阻止分配给您在 vpc 中启动的未来 vm?

答案1

据我所知,这不会像您希望的那样工作。主机上的容器通常不会在其主机的外部网络上获取自己的 IP 地址。特别是在 EC2 环境中,我认为没有办法将任意 VPC 内地址的流量路由到缺少路由表的实例,VPC 也不会分发未分配给网络接口的额外 DHCP 地址。

如果可能,请考虑使用 AWS 容器编排服务(例如 ECS)运行容器。ECS 支持 awsvpc 网络模式,该模式为每个任务提供一个在 VPC 内具有自己地址的网络接口。

如果您确实有运行自己的容器并将其公开到外部的特定需求,您可以考虑使用不受 VPC 管理的私有 IP 地址范围,您可以使用 VPC 路由表将其路由到主机(禁用源/目标检查并在主机上启用 IP 转发)。我不知道这是否一定有效,但可能值得尝试。

答案2

有没有办法阻止 VPC 中的一系列 IP(传递给 docker)?

要允许特定地址范围(“仅使用这些范围”),您可以配置default-address-pools设置/etc/docker/daemon.json

{
     "default-address-pools": [
         {"base":"10.132.0.0/16 ","size":24}
     ]
 }

如果你想堵塞特定范围(“不使用这些范围”),只需通过默认网关 ( ip route add 172.17.0.0/16 via <default_gw_ip>) 创建到该网络的路由即可。Docker 不会使用 (a) 与现有主机接口关联或 (b) 可通过显式路由访问的地址范围。

default-address-pool选项记录在dockerd手册页

相关内容