Docker群与自定义网络

栏目: 编程工具 · 发布时间: 7年前

内容简介:翻译自:https://stackoverflow.com/questions/40911124/docker-swarm-with-a-custom-network

我正在尝试研究如何在 Docker 中正确使用swarm模式.首先,我尝试在我的2台工作人员和经理机器上运行容器,而没有指定自定义网络(所以我使用默认的入口覆盖网络).但是,如果我使用入口网络,由于某种原因我无法解决tasks.myservice.

所以我尝试像这样配置自定义网络:

docker network create -d overlay elasticnet

所以现在,当我打入其中一个容器时,我可以成功解析tasks.myservice但是我无法再访问我在服务创建中定义的端口 – 在外部–publish(当我使用入口网络时我可以).

有没有办法:

>使用入口网络并能够解析将指向我所有服务容器的tasks.myservice或任何其他DNS记录?

>或者,使用自定义网络,但是 – 正确发布端口以便我可以在外部访问它们?

编辑

这就是我创建服务的方式,

没有自定义网络:

docker service create --replicas 3 --label elasticsearch --endpoint-mode vip --name elastic -e ES_HOSTS="tasks.elastic" --publish 9200:9200 --mount type=bind,source=/tmp/es,destination=/usr/share/elasticsearch/config  --update-delay 10s   es:latest

使用自定义网络:

docker service create --replicas 3 --network elasticnet --label elasticsearch --endpoint-mode vip --name elastic -e ES_HOSTS="tasks.elastic" --publish 9200:9200 --mount type=bind,source=/tmp/es,destination=/usr/share/elasticsearch/config  --update-delay 10s   es:latest

看下面的例子:

1.创建用户定义的覆盖网络:

sudo docker network create overlay1 --driver overlay
9g4ipjn513iy        overlay1            overlay             swarm

2.运行具有暴露端口和3个副本的服务:

sudo docker service create --name nginx --replicas 3 --publish 80:80 --network overlay1 nginx

如果你要使用VIP,你不必指定端点模式,它是默认值.

sudo docker service  ps nginx
ID                         NAME     IMAGE  NODE  DESIRED STATE  CURRENT STATE           ERROR
dbz8b4jjfp6xg3vqunt1x8shx  nginx.1  nginx  dg1   Running        Running 13 minutes ago  
9d8zr6zka0sp99vadr8eqq2t2  nginx.2  nginx  dg3   Running        Running 13 minutes ago  
cwbcegunuxz5ye9a8ghdrc4fg  nginx.3  nginx  dg3   Running        Running 12 minutes ago

3.Verification:

从其中一个节点测试Exposed端口:

administrator@dg1:~$telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.

从外部主机测试暴露的端口:

user@externalhost /home/balrog% telnet dg1 80
Trying 172.30.135.101...
Connected to 172.30.135.101.
Escape character is '^]'.

从容器内部测试DNS查找:

sudo docker exec -it 05d05f934c68 /bin/bash
root@05d05f934c68:/# ping nginx                                                                                                                                         
PING nginx (10.0.0.3): 56 data bytes
64 bytes from 10.0.0.3: icmp_seq=0 ttl=64 time=0.050 ms
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.121 ms

root@05d05f934c68:/# ping tasks.nginx 
PING tasks.nginx (10.0.0.5): 56 data bytes
64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=0.037 ms
64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=0.149 ms

ElasticSearch特定建议:

Elasticseach有自己的集群,可提供故障转移和负载平衡功能.

您可以在属于elasticsearch集群的elasticsearch主机中为每个索引使用分片和副本.

话虽这么说,我建议你创建3个服务,每个服务有1个副本,然后在弹性搜索集群中加入,然后创建包含3个分片和3个副本的索引.您将在elasticsearch集群中进行负载平衡和故障转移.

要阅读有关分片的更多信息,请访问 Use this .

翻译自:https://stackoverflow.com/questions/40911124/docker-swarm-with-a-custom-network


以上所述就是小编给大家介绍的《Docker群与自定义网络》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

重来

重来

[美] 贾森·弗里德、[丹] 戴维·海涅迈尔·汉森 / 李瑜偲 / 中信出版社 / 2010-10 / 36.00元

大多数的企业管理的书籍都会告诉你:制定商业计划、分析竞争形势、寻找投资人等等。如果你要找的是那样的书,那么把这本书放回书架吧。 这本书呈现的是一种更好、更简单的经商成功之道。读完这本书,你就会明白为什么计划实际上百害而无一益,为什么你不需要外界投资人,为什么将竞争视而不见反倒会发展得更好。事实是你所需要的比你想象的少得多。你不必成为工作狂,你不必大量招兵买马,你不必把时间浪费在案头工作和会议......一起来看看 《重来》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具