按名称访问服务

Accessing to service by name

我是 swarm 的初学者,我在通过服务名称从主机访问服务时遇到了一些麻烦。

我的步数:

1) 创建 1 名经理和 2 名工人

$ docker-machine create --driver virtualbox manager1
$ docker-machine create --driver virtualbox worker1
$ docker-machine create --driver virtualbox worker2

2) 初始化管理器:

$ docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100"

3)初始化工人:

$ docker swarm join --token SWMTKN-1-2xrmha8wyxo471h85sttujbt28f95rm32d40ql3lr3kf3mf27q-4kjyqz4a5lz5ks390k35oc969 192.168.99.100:2377

4) 创建环境:

$ docker-machine env manager1
$ eval $(docker-machine env manager1)

5) 创建叠加层:

$ docker network create --driver overlay --subnet 10.10.10.0/24 my-overlay-network

6) 创建服务:

$ docker service create -p 5000:5000 --replicas 3 --network my-overlay-network --name qwe vaomaohao/app_qwe

经过这一步服务部署成功,但是我只能通过IP地址访问,不能通过服务名访问。

你能解释一下吗,为什么?

提前致谢!

一个解决方案,但您需要实施它。您可以使用 traefik or docker flow proxy,并在 windows 或 linux 中使用文件主机。

推荐给你traefik,好用。 DFP Now 项目不是一个好时机。

主机文件示例: Linux: /etc/hosts Windows: c:\Windows\System32\Drivers\etc\hosts

172.16.1.186 yourdomain.swarm