gpt4 book ai didi

docker - Docker Swarm 模式下的浏览器服务容器

转载 作者:行者123 更新时间:2023-12-04 21:46:33 24 4
gpt4 key购买 nike

我使用 docker-machine 创建了 3 个虚拟机:

docker-machine create -d virtualbox manager1
docker-machine create -d virtualbox worker1
docker-machine create -d virtualbox worker2

这些是他们的ip:

docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
manager - virtualbox Running tcp://192.168.99.102:2376 v1.12.6
worker1 - virtualbox Running tcp://192.168.99.100:2376 v1.13.0-rc5
worker2 - virtualbox Running tcp://192.168.99.101:2376 v1.13.0-rc5

然后docker-machine ssh manager1

和:

docker swarm init --advertise-addr 192.168.99.102:2377

然后 worker1 和 worker2 加入 swarm。

现在我创建了一个覆盖网络:

docker network create -d overlay skynet

并以全局模式部署服务(节点 1 个任务):

docker service create --name http --network skynet --mode global -p 8200:80 katacoda/docker-http-server

节点实际上有 1 个容器(任务)。

现在,我想直接访问我的虚拟主机.. 或者,至少,我想直接浏览我的服务容器,因为我想用 nginx 开发我的服务的负载平衡器。为此,在我的 nginx conf 文件中,我想指向一个特定的服务容器(即现在我在全局模式下有 3 个节点(1 个管理器和 2 个工作人员),所以我有 3 个任务正在运行-->我'我想从这 3 个容器中选择一个)。我该怎么做?

[编辑]:我可以指向我的集群节点,只需浏览到 VM_IP:SERVICE_PORT,即:192.168.99.102:8200,但仍然存在内部负载平衡.

我在想,如果我指向一个特定的群节点,我将在该特定节点内使用容器。但暂时没有。

最佳答案

添加到上面提供的@ben-hall 的答案中;Docker 1.13 将为 --publish 标志引入高级语法,其中包括用于发布服务端口的 mode=host Release模式(请参阅此处的拉取请求:docker#27917,和 docker#28943 )。使用这种模式,支持服务的容器(任务)的端口将直接发布到它们运行的​​主机上,绕过路由网格(因此绕过负载均衡器)。

请记住,因此,一个服务只能在一个节点上运行一个任务。

在 docker 1.13 及更高版本上;下面的例子创建了一个myservice服务,任务的80端口被发布到部署任务的节点的8080端口。

docker service create \
--name=myservice \
--publish mode=host,target=80,published=8080,protocol=tcp \
nginx:alpine

与通过路由网格发布端口的任务相反,docker ps 还显示为使用“主机模式”发布的任务发布的端口(参见 PORTS 专栏);

CONTAINER ID        IMAGE                                                                           COMMAND                  CREATED              STATUS              PORTS                           NAMES
acca053effcc nginx@sha256:30e3a72672e4c4f6a5909a69f76f3d8361bd6c00c2605d4bf5fa5298cc6467c2 "nginx -g 'daemon ..." 3 seconds ago Up 2 seconds 443/tcp, 0.0.0.0:8080->80/tcp myservice.1.j7nbqov733mlo9hf160ssq8wd

关于docker - Docker Swarm 模式下的浏览器服务容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com