将 Docker 容器暴露给 vpc 网络

将 Docker 容器暴露给 vpc 网络

我有一台运行 Docker 的 ubuntu 服务器,其中有一个容器。我的服务器 IP 地址是 172.31.12.29/20(在我的 vpc 中)。它有两个网桥(docker0 和 lxcbr0)。

我的容器ip地址是172.17.0.2/16。

主机和容器都可以ping通自己。

我的 vpc 中有另一台服务器,其 IP 地址为 172.31.1.233/20。我只想从这台服务器访问我的容器,但我不知道该怎么做。

我的两台服务器都可以 ping 通自己。

我尝试配置我的 vpc 路由表以将 172.17.0.0/16 目标请求路由到 172.31.12.29,但它不起作用。

任何想法 ?

答案1

听起来您还需要在托管容器的实例上禁用源/目标 IP 检查(并且您需要 VPC 路由表中的静态路由,通过 id 指向该实例)。VPC 网络基础设施会根据基础设施内部对与每个实例关联的 IP 地址的了解,丢弃 IP 地址不合理的 IP 流量。此设置会在您应用它的实例上更改该功能。如果您有一个 NAT 实例,您会注意到该实例已经完成了此操作,否则它将无法将外部流量路由到/从其他实例路由。

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

这也位于控制台中的实例操作中。

答案2

您可以公开容器端口(docker run -p 1234:1234)并连接到您的 ec2 实例地址(10.xyz:1234)

为了避免在消费者端硬编码地址,可以使用大使模式:https://docs.docker.com/engine/admin/ambassador_pattern_linking/

相关内容