问题标签 [docker-swarm-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何在 docker engine swarm 模式下跨多个主机共享卷?
我们可以在 docker engine swarm 模式下跨多个主机共享一个公共/单个命名卷,最简单的方法是什么?
docker - 在具有多种系统架构的 swarm 上运行 docker 服务
我想使用新的 docker swarm mode在我的笔记本电脑 (x86_64) 和 Raspberry Pis (armhf) 集群上测试我的分布式算法。
经过一堆配置,我可以成功创建 swarm 集群,由一个管理节点(笔记本电脑)和 N+1 个工作节点(N rasps,加上我的笔记本电脑)组成。它看起来像这样:
现在,我为我的项目构建了两个镜像:一个 x86_64 镜像 ( my_project:x86_64
) 和一个 armhf 镜像 ( my_project:armhf
)。我真的很喜欢这种新的 swarm 模式的节点/服务架构,因为创建 M(准)独立节点正是我想要的,但是如何使用docker service create ...
命令将正确的图像提供给正确的节点呢?
据我所知,docker service create
只取一张图片作为参数!我在这里看到我可以给每个节点一个标签,并要求服务只使用具有这个特定标签的节点,但这不是我想要的。我最终会管理两个按架构划分的任务集群,这会粉碎我利用 swarm 模式的调度程序和调度程序的愿望。
我是他追求便携性的可悲极客,这就是我!
PS:注意,这有标签“docker-swarm-mode”,而不是“docker-swarm”标签,因为docker swarm和docker swarm mode是两个不同的东西。
docker-swarm-mode - 为什么两个 docker swarm 节点名称相同?
我是一个 Docker swarm 模式新手,正在阅读https://docs.docker.com/engine/swarm/swarm-tutorial上的教程,并在我点击关于排水节点的章节时注意到(https://docs.docker.com /engine/swarm/swarm-tutorial/drain-node/)我的两个工作节点都被赋予了相同的名称,moby
:
这使得发出 drain 命令失败:
如果我使用 ID,则该命令有效。
我看到了Docker swarm:如何手动设置节点名称?,但我的环境不同。我的管理器节点是一个带有主机名的 Ubuntu 盒子bunty
,我的工人是一个带有主机名的 Windows 盒子VADER
和我的带有主机名的 MacBook Pro newt
。所有人都在运行最新版本的 Docker 1.12.x。
我希望节点名称分别为bunty
, VADER
, & newt
,但我却得到bunty
了经理 &moby
两个工人的名字。
是什么赋予了?命令中似乎没有docker swarm join
让我手动命名节点的选项,并且每个工作人员都有一个唯一的主机名。
docker-swarm-mode - 关于带有过滤器、策略、亲和力等的 docker swarm 模式
我已经开始使用 docker swarm 模式,但我无法找到关于传统 swarm 所涵盖的很多东西的可靠信息。有谁知道以下的事情??
有哪些过滤器可用?曾经有约束、健康和容器槽,但不确定在创建服务时如何设置、更改或使用该过滤器。我通过将“--constraint node.labels.FOO==BAR”传递给 docker service create 来获得约束标签,但不确定其他过滤器。
你如何设置亲和力,依赖关系,端口?传递“-e”似乎不起作用..
无论如何要制定策略...?
不是特定于 swarm,但有什么方法可以检查容器保留了多少 CPU 或内存?在 docker info 中找不到相关信息。
这个问题也不是特定于 swarm。有没有办法限制磁盘和网络带宽?
我指的是这个=> https://docs.docker.com/swarm/scheduler/filter/,但我找不到一个集群模式。认真地应该致力于改进群模式文档......
docker - 如何在 docker swarm 模式下实现 cpu-throttling:docker service create
我们可以使用 docker run 命令分配 cpu-quota 和 cpu-period。如何使用 docker service create 命令实现相同的功能?
在 docker 1.12 swarm 模式下,只有“--limit-cpus”选项。
docker - Docker Swarm 服务网络
对于 DevOps 大学项目,我们的任务是使用 docker 和 Jenkins 等构建 Web 视频流服务。我们完全可以自由支配我们的工作方式...... Swarm 看起来很有趣,所以我想我会给它一个去(因为它进行复制可能会给我一些奖励积分)。
我的背景是数据(python 很有趣),所以服务器和网络等不是我的强项。此外,这一切都是在我的机器上本地完成的。
我正在努力与实际的 docker 服务进行通信(softinstigate/restheart 图像与 Mongodb 服务进行通信)。
它在两台 docker 机器上复制。然后连接到本地网络,本地网络又连接到另一个“代理”覆盖网络。
那么,如何连接到特定的 restheart api 服务以获取 HTML 页面的一些数据?普通容器构建等将是 localhost:chosenport。但我相信 docker-machines 是不同的 IP 地址?端口号是怎么定义的?
本质上,一个人如何从一个网站页面连接到一个群体中的特定服务?
我找到了几篇文章可以通读,但当时无法理解。想我可能已经尝试将 localhost 地址更改为领导群节点的 IP 地址,这似乎不起作用(但这是不久前的事了)。
用于设置的 Docker 命令在我的手机上运行。
docker - Docker 服务已更新时间戳
Docker Swarm API 客户端具有以下服务元信息:
这是最后一次用户启动的时间戳update
(例如更改服务配置)还是服务更改的时间戳,即使是 Docker Swarm 也会执行?
例如,如果我的 swarm 服务有 5 个任务分布在集群中,然后 Docker 出于某种原因将一个任务从一个节点移动到另一个节点(因此服务配置不会更改);它会更新这个字段吗?
docker - 在 Docker Swarm 模式中使用副本的主要优势是什么?
我很难理解replica
Docker Swarm Mode 中实例的概念。我读过它是一个有助于高可用性的功能。
但是,即使为服务定义了 1,如果一个节点出现故障,Docker 也会自动在另一个节点上启动一个新任务replica
,这也提供了高可用性。
replica
那么对于任意服务来说,拥有 3 个实例而不是 1 个实例有什么好处呢?我的假设是,有了更多的副本,Docker 在发生故障时花费更少的时间在另一个节点上创建新实例,这有助于提高性能。它是否正确?
docker - Docker 在 compose/swarm 模式下的使用
我对 docker 很陌生,我需要一些关于分发我的应用程序的帮助。
考虑一下:
我有一个物理机池,每台都运行最新版本的 docker。
我的“应用程序 A”有几个容器。为了在此定义中明确,应用程序将是在一个容器、4 个消息传递容器和一个主容器中运行的数据库。所有 6 个容器都需要相互通信。数据库、消息传递等容器将是“服务”。
我还可以拥有“应用程序 B”、“应用程序 C”和“应用程序 N...”,它们的大小和配置与“应用程序 A”略有不同。应用程序之间不相互通信并且完全独立。
要求:
- 所有应用程序“A,B,C..N”必须使用相同的物理机池。
- 如果需要,每个应用程序的每个服务都必须在不同的物理机器上运行。
- 您可能希望限制如何将每个服务分配给每个物理机
- 我需要“即时”创建应用程序
我的第一个想法是使用 docker-compose 来定义一个应用程序和几个 dockerfile 来定义其中的服务。但如果我这样做,每个应用程序都将在同一个 docker 引擎中运行,因此在同一个物理机器上运行。
我已经读到您可以将 docker compose 部署到 docker swarm 中。在这种情况下,docker swarm 将充当 docker 引擎。但是,我找不到任何关于如何做到这一点的例子,而且我不确定这些限制。
我的第二个想法是使用群模式。我会创建一个集群,并在其上运行服务。但是,我会失去“应用程序”的概念。群中会有一堆服务,我无法管理它们之间的通信方式。
所以,鉴于这个问题:
- 有什么假设或陈述我错了吗?
- 场景中推荐的 docker 工具用法是什么?
nginx - Swarm:主机中的 Manager + VM 中的 Worker:worker 中没有容器
我正在尝试使用带有 docker swarm 的 nginx 容器部署 CDN。目前,我在主机中有管理器,并且在 VM 上使用 docker-machine 创建了一名工作人员:
我在主机上运行管理器:
然后,在worker1上,我运行:
在主机上,我创建了覆盖网络:
并创建了我的服务,有 10 个副本:
但是,如下图所示:
在管理器(主机)上,10 个副本中只有 5 个,而在 worker1 上
没有容器。
为什么?
如果我 cmddocker service ps nginx-cdn
有一些像这样的行:
但是我创建了一个名为“nginx-new:latest”的图像,如果我从这个图像创建了一个容器,它就可以工作。