当前位置: 首页 > 知识库问答 >
问题:

Ubuntu16.04中带有LXD的自定义桥接器

燕靖
2023-03-14

问题

我在一台主机上使用了两个NIC,我想在其上使用Docker配置文件运行LXD。我在接口0(enp0s10f0)和环回上运行DNSMASQ。我希望LXD容器使用单独的NIC(enp0s10f1)。此时,我不需要将容器直接暴露在网络上。因此,我在/etc/network/interfaces中手动创建了一个网桥(lxdbr1),并将enp0s10f0作为它的从机。我想使用带有自定义配置的ebtables DNSMASQ(对于不同的容器实例可能会更改)来过滤容器中允许的出站流量。由于上述要求,我试图不使用lxd网桥服务和它创建的默认网桥(lxdbr0)。

我现在面对两个问题:

  1. 我将lxdbr1附加到默认的LXD配置文件。如果我启动一个带有默认和docker配置文件的容器,我会在容器中看到一个eth0接口。然而,这是一个没有IPv4地址,并且似乎有一个随机IPv6地址。我相信这是因为这是LXD的默认设置。我尝试使用lxc设备编辑lxdbr1编辑网络配置,但在添加ipv4之后。地址,ipv4。nat,ipv6。地址和ipv6。在保存nat选项和文件时,edit命令指示错误为“Config parse error:not found”。我用格式化程序验证了我编写的YAML是正确的。所以我不确定这里的问题是什么
  2. 假设我能够完成上述工作,我还需要做其他事情吗?伪装上的Debian networking wiki表明,我还必须设置从接口enp0s10f1上的外部网络IP到分配给网桥的内部IP的默认路由。这一部分也让我感到困惑

还有其他更简单的选择吗?例如,我可以使用LXD创建的默认网桥,使其持久化,然后使用我自己的DNSMASQ实例(我可能有多个实例)和我自己的流量规则吗?

出身背景

我正在为Linux上的团队提供服务或库构建一个连续的交付管道。出于各种原因,我们必须锁定构建、签名和发布过程运行的主机和环境,同时为使用管道的团队提供最大的灵活性,以使用他们认为合适的任何编程语言、框架或工具。例如,假设一个团队希望在版本a和版本B中使用Haskell和Rust(无论出于何种原因);我不想从事管理此类声明或为该团队预先安装它们的工作。同时,我希望确保他们不会使用随机包源或最终发布未签名的包。因此,我提出了一个解决方案,它可以在不同阶段(构建、测试、打包、发布、归档)使用临时LXD容器(其中包含Docker),并在启动每个容器之前或之后在主机上完成管道所需的任何工作。工作流将类似于:

  • 在主机上执行预构建步骤。
  • 调用容器内的用户构建脚本。
  • 在主机上执行后期构建步骤。
  • 在主机上做预测试步骤。
  • 调用容器内的用户测试脚本。
  • 在主机上调用测试后步骤。

等等

共有1个答案

谢骏奇
2023-03-14

通过将容器附加到包含物理网络接口的网桥上,实际上是将容器直接暴露到该网络上,这就是网桥所做的。

如果不希望容器在第2层暴露到物理网络,则创建一个不包含物理网络的网桥。然后,您可以在该桥上运行dnsmasq,以便容器可以获得IP地址,主机将充当网关。

 类似资料:
  • 自定义网桥 除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器。 在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥。 如果服务已经运行,那需要先停止服务,并删除旧的网桥。 $ sudo systemctl stop docker$ sudo ip link set dev docker0 down$ sudo brctl

  • 我尝试用自定义控制器制作一个自定义组件。自定义组件已经显示在应用程序上,但我未能向其添加属性。 项目结构: null 布尔马尔科 完全错误: 原因:java.lang.nullPointerException:无法调用“javafx.scene.image.imageeview.setimage(javafx.scene.image.image)”,因为“controller.topbarbtn.

  • 我尝试开发一个小android应用程序,并显示一个对话框警报,其中只包含一个edittext,以填充自定义内容作为下一个链接 创建自定义布局我有这个代码,但它不工作 } 但是代码循环运行 我不明白 在我班上的主要活动 我有这个密码 这是我的风格。xml 我的logcat是下一个 谢谢你的帮助,

  • 我试图获得一个带有自定义图标的JFrame,但没有任何效果。下面是我现在看到的Java 11:

  • 问题内容: 我正在使用.NET的HttpClient向WebAPI发出请求,该WebAPI返回一些JSON数据,该数据需要在客户端进行一些自定义反序列化。为此,我已经完成了自己的工作,但是我不知道如何让该方法处理转换器的存在。 通过使用读取响应,然后将该字符串传递给,我已经解决了我的问题,但是似乎应该有一个更优雅的解决方案。 这是我的代码: 这是我所能做到的最好的,还是有一些更优雅的方法? 如果需