我有一个Java应用程序在ECS的Docker容器中运行。最近,对它访问外部Internet提出了新要求。在我们的开发环境中,这不是问题,但是一旦投入使用,Docker实例便无法访问Internet。
深入研究后,我将网络模式从“网桥”更改为“主机”,从而解决了该问题。问题是,我不想使用桥接模式。
我无法确定的是为什么环境之间会有所不同。它们的任务定义等完全相同。
我已经检查了安全组。实际上,我已经检查了主机EC2是否可以访问Internet。无论如何,所有这些被它在“主机”模式下工作的事实所消除。另外,EC2实例是从与其他环境相同的AMI中产生的。
答案 0 :(得分:0)
能否请您检查是否已将NAT网关(VPC-> NAT网关)分配给与EC2实例(私有子网)相同的子网,并将Internet网关分配给公共子网?
专用子网的路由表应如下所示:
| Destination | Target |
| 10.20.0.0/16 | local |
| 0.0.0.0/0 | nat-00d.... |
公共子网的路由表应如下所示:
| Destination | Target |
| 10.20.0.0/16 | local |
| 0.0.0.0/0 | igw-046.... |
..假设10.20.8.0/21是您的公共子网,而10.20.16.0/21是您的私有子网。
然后,您应该在新娘网络模式下的ECS服务上连接互联网。