运行新的负载均衡应用程序
在我们使用docker stack deploy命令之前,我们先运行:
#docker swarm init
注意:我们将在第 4 部分中介绍该命令的含义.如果不运行 docker swarm init,则会显示 "此节点不是 swarm manager" 的错误.
现在让我们来运行它.你必须给你的应用程序起个名称.在这里,它被命名为getstartedlab.
#docker stack deploy -c docker-compose.yml getstartedlab
我们的单个服务堆栈在一台主机上运行了 5 个部署映像的容器实例.让我们来查看下.
在我们的应用程序中获取一项服务的服务ID:
#docker service ls (或docker ps)
将看到 web 服务的输出,并以你的应用程序名称作为前缀.如果你将其命名为与此示例中所示的相同,则名称将为 getstartedlab_web.还列出了服务 ID 以及实例数量,镜像名称和暴露端口.在服务中运行的单个容器称为任务.任务会被赋予唯一的数字增加的 ID,可以在 docker-compose.yml 中定义的实例数量.列出你的服务的任务:
#docker service ps getstartedlab_web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
pyjg9hjmiubl getstartedlab_web.1 friendlyhello:latest swarm1 Running Running 2 hours ago
l4dze4ykna53 getstartedlab_web.2 friendlyhello:latest swarm1 Running Running 2 hours ago
wv49dwr41uyt getstartedlab_web.3 friendlyhello:latest swarm1 Running Running 2 hours ago
eten7ue4sace getstartedlab_web.4 friendlyhello:latest swarm1 Running Running 2 hours ago
djtvjvv0012q getstartedlab_web.5 friendlyhello:latest swarm1 Running Running 2 hours ago
如果你只列出系统上的所有容器,也会显示任务,但不会被服务过滤:
#``docker container ls -q
552750f13021
f0709bdbbca2
913c2ead1b86
9b3874094b67
c51e8021f0ee
feddb2fff6c5
你可以连续多次运行 curl -4 http:// localhost,或者在浏览器中转到该 URL 并点击几次刷新.无论哪种方式,你将看到容器 ID 更改,演示负载均衡; 在每个请求中,以循环方式选择 5 个任务中的一个来响应.容器 ID 将匹配您以前的命令(docker container ls -q)的输出.
来源: http://www.bubuko.com/infodetail-2471494.html