LXC為容器提供了獨立的網絡空間,這意味着我們可以為容器配置IP地址,MAC地址,route表等等,並通過LXC提供的幾種方式連接到宿主進而連到互聯網。下面介紹兩種采用網橋方式連接到宿主機的配置情況。
情況一:
采用靜態IP地址,即宿主本身的IP地址是由系統管理員手動配置的,容器的IP地址也是靜態指定。
宿主機的配置:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BRIDGE=br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
DELAY=0
IPADDR=10.20.153.21
NETMASK=255.255.255.0
GATWAY=10.20.153.254
然后重啟網絡
service network restart
下面來配置LXC容器
vim net.conf
lxc.network.type=veth
lxc.network.flags=up
lxc.network.link=br0
lxc.network.ipv4=10.20.153.234/24
lxc.network.hwaddr=4a:49:43:49:79:bd
然后創建LXC容器
lxc-create -n net -f net.conf
最后就可使用LXC容器來啟動應用了
lxc-execute -n net ping 10.20.153.20
情況二:
采用Dhcp+NAT的方式,即宿主機的IP地址由dhcp協議自動獲取,LXC容器的IP地址也通過dhcp協議獲取
宿主機配置:
yum install libvirt
這時機器上會多出一個virbr0的網橋,通過ifconfig就可以看到
LXC容器的配置:
lxc.network.type=veth
lxc.network.flags=up
lxc.network.link=virbr0
lxc.network.hwaddr=4a:49:43:49:79:bd
然后創建LXC容器
lxc-create -n net -f net.conf
最后使用容器啟動應用,注意此時不能直接啟動應用,需要先一步使用dhcp獲得IP地址,可以寫一個腳本來替代。比如:
vim net.sh
dhclient eth0
ping xx.xx.xx.xx
再啟動容器:
chmod +x net.sh
lxc-execute -n net ./net.sh
注:如果是ubuntu系統,通過apt-get 安裝的lxc,不用再安裝libvirt,安裝好lxc后,系統會多一個lxcbr0,功能與virbr0類似
