问题标签 [docker-stack]

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.

0 投票
0 回答
32 浏览

docker - 我试图创建一个 docker stack 服务,其中有多个操作系统容器要启动,但我无法做到这一点

我想为 ansible 实验室创建一个具有多个操作系统的环境。我选择了 docker 来实现这一点,我已经编写了一个 docker-compose 文件来使用docker stack创建多个服务,只要我启动堆栈服务,所有容器都会关闭。我不知道在哪里提到堆栈服务的分离标志。找到下面的堆栈文件

有什么办法可以克服我的问题,或者有没有其他最好的解决方案来建立一个 ansible 实验室环境?

0 投票
0 回答
745 浏览

docker - 在具有自动启动功能的单个节点上运行 docker stack & swarm?

如何docker-compose.yml在系统重新启动时自动启动的单个 docker swarm 节点上运行 docker 堆栈(来自 a )?

我正在使用 docker-compose 组合多个服务的应用程序,然后使用docker stack deploy它在我的服务器上将其部署到单个实例 docker swarm 实例。

在我的docker-compose.yml我已经用重启策略定义了我的服务:

恕我直言,应该强制服务始终运行/重新启动。但是当 server/docker 守护进程重新启动时,服务并没有启动。有一些简单的方法可以做到这一点吗?

docker service list会显示:

所以它认识到它应该运行 1 个节点,但它没有扩大它。强制 docker swarm、service 或 docker stack 在服务器重启(或 docker daemon restart)时将所有配置的服务扩展到其配置值的正确方法是什么?

0 投票
1 回答
323 浏览

docker - 无法通过 docker-compose 文件使用 Docker Swarm 将 neo4j 服务部署为 docker 堆栈

我正在尝试配置一个 docker-compose.yml (我知道版本和服务没有说明,它们是文件的一部分)文件来运行 neo4j 实例。我正在使用 docker swarm 并部署一个堆栈,即使用以下命令:

码头工人群初始化

docker stack deploy -c docker-compose.yml neo

我省略了用户名和密码。我目前只尝试启动一个实例,因为我仍在测试。我删除了 NEO4J_AUTH 和 NEO4J_AUTH=none,结果相同。

日志提供以下内容:

在 debug.log 文件中,我发现的唯一内容是:( [o.n.b.s.a.BasicAuthentication] Failed authentication attempt for 'neo4j'没有其他故障、错误或警告)。

显然,我有某种身份验证问题,但我不确定错误在哪里以及如何解决它。我已尝试NEO4J_AUTH=none完全删除 ENV,但它仍然无法正常工作。

有人在此问题上发布了一些内容,但他们没有收到任何回复。我希望我的可以。

0 投票
3 回答
1237 浏览

docker - 如何在 docker-compose 文件中获取和设置随机服务端口作为 env var?

这是 docker-compose.yml 的示例:

我想获取服务随机端口并在urlenv 变量中设置如下:

url: "http://ghost.localhost:{{.Service.Port}}"

最终目标是在不手动设置端口的情况下部署多个堆栈。

docker stack deploy --compose-file=docker-compose.yml ghost1
docker stack deploy --compose-file=docker-compose.yml ghost2
docker stack deploy --compose-file=docker-compose.yml ghost3

这是可能的 ?

0 投票
1 回答
1996 浏览

docker - docker stack 中的网络未定义问题

我正在使用 docker stack 在具有两个节点的 swarm 网络上部署一些服务。我创建了可以看穿的覆盖网络, docker network ls但是当我尝试在 docker stack 文件中使用该网络时,我不断收到错误Network undefined。这是我的码头工人堆栈文件

我在这里做错了吗?我不知道为什么 docker stack 无法选择覆盖网络

码头工人版本:

0 投票
2 回答
6160 浏览

docker - 使用 docker stack 进行卷安装

以下是我的 docker-stack 文件。

它在我的机器上运行良好,将 certs 文件夹绑定到容器内的证书。但是,在我在 docker-stack-node 映像中部署此服务的 CI 管道中不起作用。我得到的错误是

“绑定”类型的挂载配置无效:绑定挂载源路径不存在。

我读到如果您将主机路径绑定到服务的容器中,则该路径必须存在于每个 swarm 节点上。所以,我想我需要创建一个命名卷。但是,使用命名卷我无法指定证书的源路径。这很令人困惑。有人可以帮忙吗?

0 投票
1 回答
1232 浏览

docker - 从 Jenkins 容器内调用 docker stack deploy 在 docker 主机上

在我的 OS X 主机上,我使用启用了 Kubernetes 并使用 Kubernetes 编排的 Docker CE (18.06.1-ce-mac73 (26764))。在这台主机上,我可以使用这个简单的 docker-compose 文件 (kube-compose.yml) 运行堆栈部署以将容器部署到 Kubernetes:

这个命令行从包含撰写文件的目录运行:

但是,当我尝试从我的 Jenkins 容器中运行相同的命令时,Jenkins 会返回:

该节点不是集群管理器。使用“docker swarm init”或“docker swarm join”将此节点连接到swarm,然后重试

我不希望为 swarm 初始化 Jenkins 容器中的 docker 客户端,因为我没有在主机上使用 Docker swarm。

Jenkins 容器在 docker-compose 中定义,以包含到 docker 主机套接字端点的卷挂载:

我还按照本指南使用 socat 代理对 docker 主机的请求:https ://github.com/docker/for-mac/issues/770和这里:Docker-compose: deploying service in multiple hosts

最后,我使用以下 Jenkins 定义 (Jenkinsfile) 来调用堆栈以部署在我的主机上。Jenkins 安装了 Jenkins docker 插件:

我还尝试将 withServer 签名更改为:

我得到相同的错误响应。但是,我能够从 Jenkins 容器远程登录到 docker 主机,所以我知道它是可以访问的。另外,正如我之前提到的,我知道消息说要运行 swarm init,但我没有部署到 swarm。

我检查了 Jenkins 容器中 docker 客户端的版本,它与我在主机上使用的版本相同(不过是 Linux 变体):

Docker 版本 18.06.1-ce,构建 d72f525745

这是我描述的代码:https ://github.com/ewilansky/localstackdeploy.git

请让我知道是否可以从 Jenkins 容器中做我希望做的事情。所有这些的目的是提供一个简单、可移植的管道演示,部署到 Kubernetes 是最后一步。我知道这不是在本地开发环境之外的任何地方都可以采用的方法。

0 投票
2 回答
2815 浏览

docker - 如何更改 Docker 堆栈重启行为?

在我们的项目中,我们继承了包含一些服务堆栈的 Docker 环境。

我注意到 Docker 一旦面临内存限制就会重新启动堆栈。

不幸的是,根据我在 Docker 网站上的问题,我没有找到任何信息,所以我在这里问:

  1. 这种行为是可配置的吗?例如,我不希望 Docker 在任何情况下都重新启动我的堆栈。如果它是可配置的,那么如何配置?
  2. 是否有任何 docker 日志来保持任何堆栈在其条目时重新启动?
0 投票
2 回答
4289 浏览

docker - Docker Stack 任务因权限被拒绝错误而被拒绝

我尝试使用docker stack deploy命令部署一个堆栈(包含一个服务),并在 swarm 上从我的应用程序运行 2 个实例!这是我的 docker-compose 文件:

运行sudo docker stack deploy -c ./docker-compose.yml ts命令后,我的堆栈成功部署到 swarm,但这是我的docker stack ps ts 输出:

完整的错误消息是mkdir /var/lib/docker: permission denied

另一个问题是,当我尝试使用已docker service create部署并成功运行的命令服务创建堆栈时,但我无法从本地主机访问该服务!我有两个问题:

  1. 从撰写文件部署堆栈有什么问题,为什么我得到mkdir /var/lib/docker: permission denied错误?
  2. 如何将我的服务网络 k 配置为可从主机访问?
0 投票
3 回答
1371 浏览

docker - 无法在 swarm 中运行 Apache nifi docker 容器。空响应

我无法在 docker swarm 中运行官方 nifi 映像。当我以常规模式启动容器时:

一切正常,我可以在http://localhost:8080/nifi下访问应用程序

但是,当我尝试在 docker swarm 中运行应用程序时:

使用以下 docker-compose.yml

应用程序启动(zookeeper 和 nifi)但在http://localhost:8080/nifi下无法访问

但是运行以下代码:

表明 nifi 已启动并正在运行,但由于某种原因,它不能在外部容器中工作。

我快要开始用头撞墙了。我怎样才能解决这个问题?

最好的帕维尔