访问 docker swarm 的所有实例

access all instances of docker swarm

我们开始实施 docker swarm 或我们应用程序的某些部分。其中一个部分是 Web 套接字服务器,它允许我们将 "live" 内容推送给特定用户。

我的问题是 - 如果我想对特定容器进行休息调用,而不是覆盖网络上的负载平衡 - 这可能吗?如果是这样,我将如何去做?

谢谢

如果我正确理解了您的用例,以下示例可能会帮助您入门。

给定覆盖网络和具有多个副本的服务:

docker network create --driver overlay --attachable nginx
docker service create --name nginx --network nginx --replicas 3 nginx:alpine

您可以 运行 一个连接到 nginx 网络的容器:

docker run --rm -it --network nginx alpine:edge ash

在该容器中,您可以找到服务的所有任务,如下所示:

apk add -U drill
drill tasks.nginx

响应应包含与此类似的内容:

...
;; ANSWER SECTION:
tasks.nginx.    600 IN  A   10.0.1.3
tasks.nginx.    600 IN  A   10.0.1.4
tasks.nginx.    600 IN  A   10.0.1.5
...

不过,您并不真的需要可连接网络和单个容器。或者,您也可以在同一网络中创建另一个服务,如 nginx,并让该服务执行 tasks.<service-name> 查找以执行所需的操作。