我目前正在处理容器,无法将其配置为使用网络的DHCP,因此可以直接通过主机名(容器名)进行访问。这意味着其他设备上的应用程序可以访问容器上的服务,如果我想通过SSH到容器,则不需要先通过SSH到主机,然后使用lxc exec [containername] bash。
我已经成功创建了一个Ubuntu 16.04容器,它运行良好。它运行在我使用lxd init最初配置的IP范围内(10.0.1。*),但是,我想让他们使用主网络的IP范围和DHCP。
我设法通过将以下内容添加到我的/ etc / network / interfaces文件中来做到这一点:
auto br0
iface br0 inet static
address 192.168.1.64
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.255
gateway 192.168.1.1
dns-nameservers 192.168.1.254
bridge_ports enp3s0
iface enp3s0 inet manual
重新加载网络服务后,此方法运行良好,并且可以在网络上看到容器,反之亦然。但是,主机却无法访问Internet,无法再看到网络上的其他设备,反之亦然。
还原更改后,主机可以再次访问网络,但是,容器随后返回了其原始IP范围,并且无法看到网络。
我进行了进一步的修改,但没有成功,因此我回到了拥有互联网的主机上,并且当前看不到这些容器;这不是我想要的
任何人都可以对我可能出了问题的地方提供进一步的了解吗?我应该做一些完全不同的事情吗?
提前致谢。
好吧,最后,似乎唯一可以解决的问题是重新安装了OS。我现在正在运行Ubuntu 17.10。我没有进行升级,而是进行了全新安装(但如果需要,则制作了旧安装的映像)。
至于/ etc / network / interfaces文件,它很简单:
auto br0
iface br0 inet dhcp
bridge_ports enp3s0
iface enp3s0 inet manual
至于lxd配置文件,其配置为:
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
nictype: bridged
parent: br0
type: nic
name: default
真的不确定为什么它拒绝在16.04.3 LTS上运行,但是至少它在17.10上运行。
无论如何,谢谢您的帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句