首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在docker swarm集群中获取服务的Ips?

问如何在docker swarm集群中获取服务的Ips?
EN

Stack Overflow用户
提问于 2017-04-24 16:47:24
回答 1查看 896关注 0票数 1

但是我不能从节点获取Ip来访问容器中的数据库服务?

例如: mysql -h {{ mysql_service_host }} ....

如何从节点获取容器Ip或服务ip?是否可以在docker swarm中使用模式主机?

EN

回答 1

Stack Overflow用户

发布于 2017-04-24 19:17:48

对于属于同一网络的服务(容器),您可以简单地使用服务名称。Docker包括一个处理ip解析的DNS解析器。您需要使您的服务成为覆盖网络的一部分。覆盖网络可以跨越多个节点。

例如:

代码语言:javascript
复制
services:
  myapp:
    image: myimage:1.0
    deploy:
      replicas: 1
    networks:
      - privnet

  maindb:
    image: mysql
    deploy:
      replicas: 1
    networks:
      - privnet

networks:
  privnet:
    driver: overlay

这创建了一个具有两个服务的覆盖网络。可以在任何节点上创建相应的容器。在哪里并不重要。它们都将能够相互通信,因为它们是同一覆盖网络的一部分。在myapp中,您可以使用maindb作为mysql服务的DNS。Docker会将其解析为私有网络内的正确ip。

顺便说一句,一个有2个节点的集群没有多大意义。Swarm需要至少3个节点才能使Raft consensus协议工作。https://raft.github.io

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43583552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档