问题标签 [portainer]

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 投票
1 回答
1228 浏览

docker - 当我单击 Portainer 中的“更新堆栈”按钮时执行哪个命令?

我使用 Portainer 并且有一个堆栈。如我所见,单击“更新堆栈”按钮将运行命令

https://github.com/portainer/portainer/blob/develop/api/exec/swarm_stack.go#L71

这样对吗?

0 投票
1 回答
4160 浏览

docker - 尝试运行 portainer 容器的卷规格无效

我正在尝试将 portainer 部署到我的本地 docker。我在 Windows 10 上运行 Docker CE 18.0.6.0 版本。我尝试按照这两个页面中的步骤操作:

  1. Portainer-部署

  2. 教程:Windows 10 上本地 Docker 环境的 Portainer!

但我一直试图运行以下命令:

Docker 总是以相同的消息响应:

来自守护程序的错误响应:无效的卷规范:'portainer_data:/data'

我使用以下命令创建了卷:

知道可能是什么吗?

0 投票
1 回答
45 浏览

portainer - 你能用 portainer.io 运行 windows 容器吗

如果我尝试使用泊坞窗图像或模板,则表示该图像不存在。我的 docker 作为 windows 容器运行。

0 投票
1 回答
35 浏览

docker - 如何在启动后为 docker 容器创建虚拟主机 nginx

我有搬运工。有一些自定义模板可以创建不同的 Web 服务器。主机上安装了一个 ningx 反向代理。如何为新的 docker 容器配置自动创建虚拟 ningx 主机?

0 投票
4 回答
14348 浏览

docker - Portainer - 如何在 docker-compose.yml 中指定 SSL?

我正在尝试将 Portainer 的实例部署到 docker swarm。我不确定如何设置正确的标志来启用 SSL。

从文档:

https://porttainer.readthedocs.io/en/stable/deployment.html

但是你如何把它翻译成一个 docker compose yml 文件呢?

0 投票
0 回答
1754 浏览

docker - 如何配置搬运工代理?

我刚刚使用本文档中的示例(https://media.readthedocs.org/pdf/porttainer/1.19.1/portainer.pdf)来配置搬运工的代理,但不断收到错误“无法通过代理请求Docker 套接字”。在这种情况下,堆栈显示为“向下”。

Portainer 在没有代理和安装 docker.sock 的情况下工作得很好。

这是 docker-compose 片段

0 投票
1 回答
1333 浏览

docker - Docker 撰写 - 堆栈

我有一个docker-compose.yml文件,它带来了 5 个不同的容器。为了真正提出它们,我使用了docker-composer up -d.

我喜欢有某种 GUI,所以我使用 Portainer 来查看我的容器,我注意到的是 Portainer 容器列表实际上还有一个我从未见过的字段docker ps,那就是stack.

现在我已经在Docker 文档中阅读了有关堆栈的信息,但仍然没有完全明白一件事。我对堆栈一无所知Dockerfiledocker-compose.yml但是当我启动容器时,它们都被标记为堆栈,即我的 Docker 配置所在的文件夹。

除了分类该组容器属于同一个堆栈之外,它还有什么用途?是否可以操纵该属性以便我为其分配我的个人命名?

0 投票
1 回答
2078 浏览

windows - Window Server 2016 上的 Portainer 设置

我按照以下步骤在主机的端口上创建了一个搬运工容器9000

我收到以下错误:

C:\Program Files\Docker\docker.exe:来自守护进程的错误响应:此版本的 Windows 不支持命名管道安装。

重现步骤:

  1. 通过以下方式允许 Docker 连接通过防火墙:

    /li>
  2. 将 Docker 守护程序配置为同时侦听管道和 TCP:

    2.1。StopService docker

    2.2.dockerd --unregister-service

    2.3.dockerd -H npipe:// -H 0.0.0.0:2375 --registerservice

    2.4.Start-Service docker

  3. 拉取搬运工镜像:docker pull portainer/搬运工

  4. 创建卷: docker volume create portainer_data

  5. 运行搬运工

    /li>
0 投票
2 回答
4984 浏览

docker - 在 CI/CD 中如何管理前端和后端之间的依赖关系?

我将描述我的设置以使问题不那么抽象,但它们似乎并不特定于我的情况。

语境

我们有 Python-Django 后端和一个 VueJS 前端,每个都在一个存储库中,使用 Portainer(使用堆栈)配置和部署 Gitlab-CI。每个存储库的生产分支中的提交遵循以下路径:

  1. 犯罪
  2. gitlab-ci 管道:
    1. 构建 docker 镜像
    2. 测试图像(前端针对已部署的后端进行测试)
    3. 将图像标记为生产:最新
    4. 将图像推送回 gitlab 注册表
    5. webhook portainer中对应的服务(前端/后端)更新部署的镜像
  3. 搬运工:
    1. 拉图像
    2. 部署

问题

部署同步

想象一下,我们正在对前端和后端进行重大更改,并且两者都将与以前的版本不兼容。因此必须同时部署新版本。

在我们当前的设置中,我们必须首先部署后端(这将破坏已部署的前端),然后部署新的前端,修复生产,但有一个“停机”期。

测试的分支依赖

有时当我们在前端开发分支 feature-1 时,必须针对后端的分支 feature-1 进行测试。

在我们当前的设置中,前端中的所有提交都针对已部署的后端进行了测试(为避免在 CI 中复制后端,仅使用生产 API 地址),在这种情况下会导致错误的测试结果。

后端集成测试

当对后端进行提交时,它可能会破坏前端。

目前后端没有针对前端进行测试(只有另一种方式)。

可能的解决方案

对于部署同步问题,我考虑创建另一个存储库,其中只有一个文件指定应部署的前端和后端版本。此存储库中的提交将导致 Portanier 的两个服务 webhook 被“卷曲”以进行更新(后端和前端)。这并不能保证同时更新(在 Portainer 中可能会失败并且不会回滚),但它会比当前设置更好。

我不确定这里应该使用什么来指定版本:commit hash, git tag, branch, docker image version ... 最后一个可能避免重建和测试图像,但我认为图像名称和版本是固定的Portainer 的栈定义,不容易自动更新。

对于分支依赖项测试,我考虑在每个存储库(前端和后端)中都有一个文件,指定要测试后端/前端的哪个分支。但是每个存储库的 CI 必须复制整个部署环境(例如,运行一个新的后端和前端来测试每个前端提交)。这也将允许后端集成测试。由于我们使用的是 Docker,这并不是很复杂,但是每个 CI 管道都会花费额外的时间......此外,当第一个存储库(前端或后端)被提交时,它将引用另一个仍然不存在的分支存储库,并失败...

这些解决方案对我来说似乎很尴尬,特别是如果这些是使用 Docker 的 CI/CD 常见的问题。当我们添加更多的存储库时,它会变得更加丑陋。

备择方案?

感谢关注!

编辑:出于好奇,我目前的设置是基于这篇文章

0 投票
0 回答
2136 浏览

docker - 为什么我不能暴露 portainer 代理端口 9001?

我正在尝试在 swarm 集群上公开 portainer 代理端口 9001,以便从外部 portainer 访问它,它以“全局”模式部署。

以下 docker-compose 文件有效:

然后,当我尝试公开端口 9001 时,堆栈启动,但出现日志错误,并且 portainer 无法连接这些代理:

与另一个端口的事件:

甚至与一个无关的端口:

编辑

来自堆栈的日志:

portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:50 [INFO] serf: EventMemberJoin: b6040a1ccc2a 10.255.0.13 portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:50 [INFO] - Starting Portainer agent version 1.1.2 on 0.0.0.0:9001 (cluster mode: true) portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:50 [INFO] serf: EventMemberJoin: c6c277e3f60b 10.255.0.11 portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.11:7946: write udp [::]:7946->10.255.0.11:7946: sendto: operation not permitted portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.11:7946: write udp [::]:7946->10.255.0.11:7946: sendto: operation not permitted portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [INFO] serf: EventMemberJoin: 3e290151a5eb 10.255.0.12 portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.11:7946: write udp [::]:7946->10.255.0.11:7946: sendto: operation not permitted portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.12:7946: write udp [::]:7946->10.255.0.12:7946: sendto: operation not permitted portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.12:7946: write udp [::]:7946->10.255.0.12:7946: sendto: operation not permitted portainer_agent_agent.0.13cjb851d9me@ignochtulelk02d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.11:7946: write udp [::]:7946->10.255.0.11:7946: sendto: operation not permitted portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [INFO] serf: EventMemberJoin: 3e290151a5eb 10.255.0.12 portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [INFO] serf: EventMemberJoin: b6040a1ccc2a 10.255.0.13 portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [INFO] serf: EventMemberJoin: c6c277e3f60b 10.255.0.11 portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [INFO] - Starting Portainer agent version 1.1.2 on 0.0.0.0:9001 (cluster mode: true) portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.13:7946: write udp [::]:7946->10.255.0.13:7946: sendto: operation not permitted portainer_agent_agent.0.985h7xcfkux0@ignopotulelk03d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.11:7946: write udp [::]:7946->10.255.0.11:7946: sendto: operation not permitted portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:50 [INFO] serf: EventMemberJoin: c6c277e3f60b 10.255.0.11 portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:50 [INFO] serf: EventMemberJoin: b6040a1ccc2a 10.255.0.13 portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:50 [INFO] - Starting Portainer agent version 1.1.2 on 0.0.0.0:9001 (cluster mode: true) portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.13:7946: write udp [::]:7946->10.255.0.13:7946: sendto: operation not permitted portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.13:7946: write udp [::]:7946->10.255.0.13:7946: sendto: operation not permitted portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:51 [INFO] serf: EventMemberJoin: 3e290151a5eb 10.255.0.12 portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.13:7946: write udp [::]:7946->10.255.0.13:7946: sendto: operation not permitted portainer_agent_agent.0.mljirysir6px@ignopotulelk01d | 2018/11/26 05:28:51 [ERR] memberlist: Failed to send gossip to 10.255.0.12:7946: write udp [::]:7946->10.255.0.12:7946: sendto: operation not permitted

当我更换:

和 :

它有效,为什么host模式可以解决这个问题?