【问题标题】:ECS network host mode and links = CannotCreateContainerError: Container already existsECS网络主机模式和链接=CannotCreateContainerError: Container already exists
【发布时间】:2017-11-22 13:02:24
【问题描述】:

我正在使用 AWS ECS 部署我的一组 docker 容器,并且在桥接网络模式下一切正常,但性能缓慢......

我已经读到这个问题可以通过主机网络模式解决,但是如果我使用它,它会导致容器部署(其中一些)出错,“CannotCreateContainerError: Container already exists”。

寻找错误,我发现这是由容器中的链接引起的 (https://github.com/aws/amazon-ecs-agent/issues/185) 但我需要它,

对此有什么想法吗?

非常感谢!

【问题讨论】:

  • 不是 100% 相关,但我发现与“Fargate”“awsvpc”网络模式和“额外主机”条目类似的问题,我得到同样的错误。

标签: amazon-web-services networking docker containers amazon-ecs


【解决方案1】:

解决了!

就像那个问题 cmets 一样,networkmode host 不允许容器之间的链接,所以如果你删除它们它就可以工作。

所以现在我们遇到了一个新问题,容器之间如何通信?简单,指向 localhost 或 127.0.0.1 和它自己的端口(显然你不能用相同的端口部署两个容器)。

【讨论】:

  • 因为容器可能不在本地主机中。
【解决方案2】:

本质上,Fargate 需要使用 awsvpc 作为网络模式,因此,在使用 Fargate 启动类型时,您将无法在任务定义中使用“dnsSearchDomains、dnsServers、extraHosts、disableNetworking 和 hostName”。

当你的taskdefinition中有以上参数时,会出现错误“STOPPED(CannotCreateContainerError: container already exists)”。

不过,ECS 团队承认上述功能可能非常有用,并正在努力启用这些参数。

https://forums.aws.amazon.com/thread.jspa?threadID=250147

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多