如何设置LXC guest虚拟机以使其获得dhcp地址,以便我可以在网络上访问它?
我使用以下方法设置LXC:
lxc-create -t ubuntu -n lxcguest1
但我无法访问从我的LAN上运行的任何服务,它似乎是NATed。 如何设置它以便我可以访问它(它可能需要从我的Linksys路由器获取它的dhcp地址)?
谢谢。
我自己刚刚处理过这个问题。 基本上,您需要设置一个桥接器并将网卡和容器绑定到它。 这是我遵循的文章:
http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/
听起来像我一样,你需要’桥’解决方案而不是NAT解决方案。 我还关闭了默认的LXC桥接设置(NAT’)。 要执行此操作,只需编辑文件: /etc/default/lxc
并将USE_LXC_BRIDGE="TRUE"
更改为USE_LXC_BRIDGE="FALSE"
并重新启动。
我在Ubuntu 14.04.1 LTS(Trusty Tahr)主机上的设置
添加到主机上的/etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 0.0.0.0 auto br0 iface br0 inet dhcp bridge_ports eth0
(更改后重启)
在容器配置文件( /var/lib/lxc/containername/config
)上我设置了lxc.network.link = br0
有了这个,容器将像主机一样从dhcp服务器获取公共IP地址。
我使用默认的Ubuntu LXC设置,并配置我的路由器将10.0.3.xxx上的所有流量发送到Ubuntu机器。 在启用DD-WRT的路由器上,设置类似于下面的屏幕截图。 将192.168.1.137
替换为运行LXC的机器的IP。 其他路由器应具有类似的选项来设置静态路由(例如,这里是Linksys的静态路由指令 )。
这是无关的,但我也使用DNSMasq服务将主机名指向LXC容器的IP地址。 这样我就可以在http://gitlab/
网络上的任何地方访问容器。 在我看来,使用主机名访问容器要比记住IP地址容易得多。