问题标签 [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.
docker - 当我单击 Portainer 中的“更新堆栈”按钮时执行哪个命令?
我使用 Portainer 并且有一个堆栈。如我所见,单击“更新堆栈”按钮将运行命令
https://github.com/portainer/portainer/blob/develop/api/exec/swarm_stack.go#L71
这样对吗?
docker - 尝试运行 portainer 容器的卷规格无效
我正在尝试将 portainer 部署到我的本地 docker。我在 Windows 10 上运行 Docker CE 18.0.6.0 版本。我尝试按照这两个页面中的步骤操作:
但我一直试图运行以下命令:
Docker 总是以相同的消息响应:
来自守护程序的错误响应:无效的卷规范:'portainer_data:/data'
我使用以下命令创建了卷:
知道可能是什么吗?
portainer - 你能用 portainer.io 运行 windows 容器吗
如果我尝试使用泊坞窗图像或模板,则表示该图像不存在。我的 docker 作为 windows 容器运行。
docker - 如何在启动后为 docker 容器创建虚拟主机 nginx
我有搬运工。有一些自定义模板可以创建不同的 Web 服务器。主机上安装了一个 ningx 反向代理。如何为新的 docker 容器配置自动创建虚拟 ningx 主机?
docker - Portainer - 如何在 docker-compose.yml 中指定 SSL?
我正在尝试将 Portainer 的实例部署到 docker swarm。我不确定如何设置正确的标志来启用 SSL。
从文档:
https://porttainer.readthedocs.io/en/stable/deployment.html
但是你如何把它翻译成一个 docker compose yml 文件呢?
docker - 如何配置搬运工代理?
我刚刚使用本文档中的示例(https://media.readthedocs.org/pdf/porttainer/1.19.1/portainer.pdf)来配置搬运工的代理,但不断收到错误“无法通过代理请求Docker 套接字”。在这种情况下,堆栈显示为“向下”。
Portainer 在没有代理和安装 docker.sock 的情况下工作得很好。
这是 docker-compose 片段
docker - Docker 撰写 - 堆栈
我有一个docker-compose.yml
文件,它带来了 5 个不同的容器。为了真正提出它们,我使用了docker-composer up -d
.
我喜欢有某种 GUI,所以我使用 Portainer 来查看我的容器,我注意到的是 Portainer 容器列表实际上还有一个我从未见过的字段docker ps
,那就是stack
.
现在我已经在Docker 文档中阅读了有关堆栈的信息,但仍然没有完全明白一件事。我对堆栈一无所知Dockerfile
,docker-compose.yml
但是当我启动容器时,它们都被标记为堆栈,即我的 Docker 配置所在的文件夹。
除了分类该组容器属于同一个堆栈之外,它还有什么用途?是否可以操纵该属性以便我为其分配我的个人命名?
windows - Window Server 2016 上的 Portainer 设置
我按照以下步骤在主机的端口上创建了一个搬运工容器9000
。
我收到以下错误:
C:\Program Files\Docker\docker.exe:来自守护进程的错误响应:此版本的 Windows 不支持命名管道安装。
重现步骤:
通过以下方式允许 Docker 连接通过防火墙:
/li>将 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
拉取搬运工镜像:docker pull portainer/搬运工
创建卷: docker volume create portainer_data
运行搬运工
/li>
docker - 在 CI/CD 中如何管理前端和后端之间的依赖关系?
我将描述我的设置以使问题不那么抽象,但它们似乎并不特定于我的情况。
语境
我们有 Python-Django 后端和一个 VueJS 前端,每个都在一个存储库中,使用 Portainer(使用堆栈)配置和部署 Gitlab-CI。每个存储库的生产分支中的提交遵循以下路径:
- 犯罪
- gitlab-ci 管道:
- 构建 docker 镜像
- 测试图像(前端针对已部署的后端进行测试)
- 将图像标记为生产:最新
- 将图像推送回 gitlab 注册表
- webhook portainer中对应的服务(前端/后端)更新部署的镜像
- 搬运工:
- 拉图像
- 部署
问题
部署同步
想象一下,我们正在对前端和后端进行重大更改,并且两者都将与以前的版本不兼容。因此必须同时部署新版本。
在我们当前的设置中,我们必须首先部署后端(这将破坏已部署的前端),然后部署新的前端,修复生产,但有一个“停机”期。
测试的分支依赖
有时当我们在前端开发分支 feature-1 时,必须针对后端的分支 feature-1 进行测试。
在我们当前的设置中,前端中的所有提交都针对已部署的后端进行了测试(为避免在 CI 中复制后端,仅使用生产 API 地址),在这种情况下会导致错误的测试结果。
后端集成测试
当对后端进行提交时,它可能会破坏前端。
目前后端没有针对前端进行测试(只有另一种方式)。
可能的解决方案
对于部署同步问题,我考虑创建另一个存储库,其中只有一个文件指定应部署的前端和后端版本。此存储库中的提交将导致 Portanier 的两个服务 webhook 被“卷曲”以进行更新(后端和前端)。这并不能保证同时更新(在 Portainer 中可能会失败并且不会回滚),但它会比当前设置更好。
我不确定这里应该使用什么来指定版本:commit hash, git tag, branch, docker image version ... 最后一个可能避免重建和测试图像,但我认为图像名称和版本是固定的Portainer 的栈定义,不容易自动更新。
对于分支依赖项测试,我考虑在每个存储库(前端和后端)中都有一个文件,指定要测试后端/前端的哪个分支。但是每个存储库的 CI 必须复制整个部署环境(例如,运行一个新的后端和前端来测试每个前端提交)。这也将允许后端集成测试。由于我们使用的是 Docker,这并不是很复杂,但是每个 CI 管道都会花费额外的时间......此外,当第一个存储库(前端或后端)被提交时,它将引用另一个仍然不存在的分支存储库,并失败...
这些解决方案对我来说似乎很尴尬,特别是如果这些是使用 Docker 的 CI/CD 常见的问题。当我们添加更多的存储库时,它会变得更加丑陋。
备择方案?
感谢关注!
(编辑:出于好奇,我目前的设置是基于这篇文章)
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
模式可以解决这个问题?