问题标签 [moby]

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 回答
308 浏览

linux - docker swarm 是否会在将节点排空到其他节点时重新安排服务?

我有一个 Docker Swarm Stack。确切地说,是三个管理器和两个节点。一个节点(仅在该节点上)上几乎没有工作正常的服务,而且我有一个僵尸容器,它无法被杀死。我想排空这个节点以防止访问这个“坏”容器(它正在工作,只是没有响应任何命令,它是一个网站容器)并稍后创建一个健康的容器。而且我不确定这些服务是否会重新排列到“健康”节点?

大概,docker system prune还没有正确完成它的工作,现在系统处于锁定模式。

我正在使用 Moby Linux。

UDP1:排空节点不会停止任何容器或重新排列服务,至少从一开始就不会。基本上,该节点上的所有服务都会继续运行。这是感兴趣的问题。

UPD2:重新启动后它开始给出关于“没有找到这样的图像......”的错误,它可以通过再次登录到 Docker 集线器来解决。

0 投票
1 回答
704 浏览

docker - 允许通过 vpnkit 出站容器网络

我在这里有一个 linuxkit 构建的 VM,它带有一个service我正在尝试运行的自定义容器。

使用 Alpine 的基本映像,该net-manager服务的重点是允许公共 Internet 连接到我在host: net命名空间上旋转的虚拟以太网适配器。我目前的尝试如下(在容器内):

就像您对未使用 vpnkit 的 VM 所做的那样,但这样做似乎没有任何明显的效果。例如,nc -v google.com仍然失败。我错过了什么?vpnkit 已按照此处的示例进行安装和转发:

https://github.com/linuxkit/linuxkit/blob/master/examples/docker-for-mac.yml

0 投票
0 回答
581 浏览

docker - 使用 DNS 和查询 SRV 记录的 Docker Swarm Cluster 网络

所以我有一个非常简单的 Docker Swarm 集群,首先我像这样初始化它:

这是docker-compose.yml文件:

如何在 docker DNS 中查询 SRV 记录?我知道我可以查询 DNS 并得到一个循环的答案:

但是如何告诉集群每个服务有哪些 SRV 记录,以及如何从其他容器中查询它们?

0 投票
0 回答
156 浏览

docker - 如何为 Tizen 构建 docker-ce 引擎和自己的映像?

目前,我正在 Tizen OS 中为 arm 架构做 docker 的 POC。我只想知道如何建立自己的形象。

从“ https://github.com/moby/moby ”下载了代码。

坚持以下待办事项,

1)Linux中的构建命令是什么,我们用于构建的主机PC?

2)在哪里进行更改以设置 docker build 的 arm 交叉编译器路径?

3) 我们使用的 Tizen 内核是 4.4/armv7/32bit,我们是否需要启用任何特定的配置?我们得到了一些想法

4) 成功构建后,docker 引擎映像将驻留在构建中的哪个位置?

0 投票
1 回答
72 浏览

docker - 如何使用 docker go-lang API 的 TaskLogs 端点?

我的实际问题是,如何获得特定版本的 go-lang docker 客户端?我能找到的最新版本是一年或更早的 v17.03.2-ce。我想使用具有 TaskLogs 的 docker 1.37。但是找不到具有此特定版本的。如果我选择 master 分支,这会给我 v1.39,但我安装的 docker 客户端 API 是 v1.38,它会抛出错误“来自守护进程的错误响应:客户端版本 1.39 太新。支持的最大 API 版本是 1.38”。

为什么我需要 v1.37?我使用的是 v1.13.1,它工作正常。现在我需要实现 TaskLogs 抓取器,这在 v1.13.1 中不可用。

0 投票
1 回答
1028 浏览

docker - 如何在 docker go 客户端中创建具有内存限制的容器

我正在尝试使用 docker go 客户端创建具有内存限制的容器 - https://godoc.org/github.com/docker/docker/client#Client.ContainerCreate 但是我无法弄清楚在函数中添加这些参数的位置.

docker run -m 250m --name test repo/tag

在 docker api 中,它位于 Host Config 结构下,但在 go doc 中,我看到了在 HostConfig 中使用的资源下的选项 - https://godoc.org/github.com/docker/docker/api/types/container#HostConfig

像这样打电话

container.HostConfig 类型的结构文字中的未知字段“内存”。由于它没有字段名称并且只有类型,我不知道如何将资源添加到 Hostconfig。任何帮助表示赞赏 - 我是新手,我正在尝试调整我正在使用的开源项目 - redzilla - 由于我的系统资源限制

0 投票
1 回答
257 浏览

azure-iot-edge - Running IoT Edge Module in NVIDIA Runtime

I am working on an IoTEdge Module with image detection capabilities. For the image processing/analysing I am using Detectron which needs to run in an docker nvidia runtime.

Is it possible to enable an nvidia runtime for IoTEdge Modules and Docker Moby and how? I am not able to figure out on how to make it work. There is an entry about the topic here, but I am still not able to get it work: https://github.com/moby/moby/issues/23917 https://github.com/NVIDIA/nvidia-docker/wiki/Internals

I figured out, how to get it work with Docker CE, unfortunatly, the documentation says, Moby is not supported by IoT Edge. I havn't found any sideeffects yet, but for production it would be nice to understand the impact.

0 投票
1 回答
468 浏览

windows - 在 Windows 服务器上使用 Windows 容器时,Azure IoTEdge 模块无法连接到 IoTHub

我们将 Azure IotEdge 与部署在 Ubuntu 服务器上的 Linux 容器一起使用。我们成功运行了一些模块,用于收集、处理数据并将其发送到 IoT 中心。

现在,我们想要的是在 windows 服务器上部署另一个带有 windows 容器的IoTEdge 运行时,因为我们被需求所迫。出于引导新环境的目的,我们刚刚决定获取我们现有的工作模块之一,并将其​​部署为新运行时的 Windows 容器。IoTEdge 运行时似乎运行良好,它向 IoTHub 报告运行时状态,它响应部署更改。

  • 构建图像的开发机器位于 Windows 10 1809 build 17763.194
  • 运行 IoTEdge 的服务器计算机位于同一 Windows 10 1809 内部版本 17763.194
  • IoTEdge 运行时使用 MOBY 容器引擎
  • moby_runtime 网络设置为“nat”(默认)
  • 已安装 NuGet 包 Microsoft.Azure.Devices.Client 1.18.1 的 IoTEdge 模块
  • Windows 容器的 IoTEdge 模块的最终映像是从microsoft/dotnet:2.1-runtime-nanoserver-1809

我们遇到的事情很奇怪。模块客户端正在成功初始化:

然而,该模块无法从 IoTHub 获取其 Twin,这导致4 分钟后超时(!?)

以下是相关日志:

如果我们将moby_runtime网络更改为“azure-iot-edge”,那么结果是相同的,但此外 edgeHub 模块也无法连接。

如果我们将 IoTEdge 模块安装的 NuGet 包 Microsoft.Azure.Devices.Client 从 1.18.1 更新到 1.19.0(目前最新稳定),结果并没有更好,但是错误是NullReferenceException,而不是超时。

调试同一模块时,一切正常。在 Ubuntu 服务器上的 Linux 容器中部署时,一切正常。

任何帮助将不胜感激!

0 投票
0 回答
619 浏览

windows - 在具有 Hyper-V 隔离和 LCOW 的 Windows 上运行多个独立的 Docker 守护程序

我正在尝试运行多个 Docker 守护程序,这些守护程序配置为在同一台 Windows 10 机器上运行具有 Hyper-V 隔离和 LCOW 的容器。我能够配置守护进程来管理它们自己的数据文件,但我仍然在努力让网络配置变得干净。

当第一个守护进程启动时,它会绑定到本地“nat”网络以进行 DNS 解析。当第二个守护进程启动时,它尝试绑定到同一个“nat”网络然后失败,因为端口 53 已经被第一个守护进程使用。

错误 [2019-02-15T15:50:58.194988300Z] 容器 nat 的解析器设置/启动失败,“打开名称服务器套接字侦听 udp 172.18.64.1:53 时出错:绑定:每个套接字地址仅使用一次(协议/网络地址/端口)通常是允许的。” 由这个守护进程启动的容器不能执行任何名称解析。通过 IP 访问仍然可以正常工作。

这是我目前使用的 dockerd 配置:

我试图调整bridge配置,但它没有改变任何东西。守护进程总是尝试连接到nat网络。看起来唯一受支持的值是none,它删除了容器中的默认 eth0 和任何 DNS 支持。

是否可以配置用于 DNS 解析的网络,即nat这里?
理想情况下,我希望守护程序拥有自己的专用nat网络。

我知道在 Windows 的 Docker 中使用 MobyVM 作为 WinNAT 是不可能的,在这种情况下使用的 WinNAT不支持它
在使用 Hyper-V 隔离和 LCOW 时,似乎不再使用 WinNAT,因为Get-NetNat尽管 DNS 工作正常,但不会返回任何 NAT 网络配置。我不确定我在任何事情上都是对的,如果适用任何其他 Windows 限制,这是否可能也不可能......

0 投票
1 回答
209 浏览

azure - 我们应该如何在远程 IoT Edge 部署中管理 Moby/Docker 映像?

从部署在许多运行 Moby 的设备上的 Azure IoT Edge 中删除未使用的图像的推荐方法是什么?

如果我在 Docker 上,我会使用以下命令:

这在 Moby 上似乎不存在。此外,在运行 IoT Edge 的多个远程部署设备上进行管理的推荐方法是什么?