开发者社区> 问答> 正文

阿里云ECS对docker swarm的-p特性支持不完整

我在两台aliyun ECS上安装了docker 1.12 并创建了一个swarm集群,一个是manager一个是worker,我创建一个nginx service 并通过-p 80:80 暴露出80端口,这是都是OK的,并且两台ECS都运行了一个nginx容器,但是访问service时,会失败,准确的说是swarm的负载均衡不能正常工作,一共启动了两个容器,我访问service时,docker会自动将请求转发到不同的节点,但是出现的一种情况就是,第一次访问成功,第二次访问失败,第三次访问成功,第四次访问失败,以此类推,可以断定,应该是负载均衡到非本机的worker上出问题了,我的ecs是ubuntu 14.04,内核升级过了,没升级无法使用-p启动容器。这问题能解决吗?

展开
收起
路人jia 2016-10-12 22:36:38 6461 0
5 条回答
写回答
取消 提交回答
  • 该问题在配合新的Docker Engine,在CentOS 7.3和Ubuntu14.04.5之后已经解决。

    您把
    uname -a
    docker version
    docker info
    的信息贴一下


    Docker overlay网络所需4789端口在某些地域的阿里云经典网络可能不同,阿里云容器服务已经修复Docker Engine的问题,可以 通过
    https://www.aliyun.com/product/containerservice 来创建 Docker Swarm/Docker Swarm mode集群,

    或者使用VPC环境测试

    2019-07-17 20:15:49
    赞同 展开评论 打赏
  • centOS7.3,遇到同样的问题。阿里客服也不提供支持

    2019-07-17 20:15:48
    赞同 展开评论 打赏
  • 这个不是内网冲突的问题,我在最新docker engine上面试验了,指定了不同于宿主机的网段,还是会碰到楼主所说问题。然后我查询了官网论坛和国外的帖子,发现去年提到这个问题的特别多,后续官方也没有跟进和反馈。我估计swarm mode 到现在为止还是一个不成熟的产品。

    2019-07-17 20:15:48
    赞同 展开评论 打赏
  • 我也遇到了同样的问题,我用的是centos7.2,有什么好的解决方案吗?

    2019-07-17 20:15:48
    赞同 1 展开评论 打赏
  • 易立,阿里云资深专家,目前负责阿里云容器服务和区块链服务研发。之前曾在IBM中国开发中心工作,担任资深技术专员。关注Docker/Kubernetes等云原生计算和Hyperledger Fabric/Ethereum等区块链技术。

    这个是因为在 < 3.16 内核上,Docker Engine的Ingress网络设置和阿里云内网冲突导致,Docker 社区会提供更多的设置能力

    2019-07-17 20:15:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载