創建容器
lxc-create {-n name} {-t template} [-- template-options]
-t 指定模板,比如debian、ubuntu、centos等
-n 指定容器名稱,這是以后幾乎所有操作都要使用的
template-options: 根據不同的模板有不同的選項,可以指定發行版本、創建容器時使用的mirror url,架構等等
- 創建debian的testing容器:
sudo lxc-create -t debian -n debian -- --mirror=http://mirrors.163.com/debian/ -r testing
- 創建cnetos7容器
sudo lxc-create -n centos -t centos -- -R Centos_7 --repo=http://mirrors.163.com/centos/7/os/x86_64
- 創建ubuntu16.04容器
sudo lxc-create -n ubuntu -t ubuntu -- -r xenial --mirror=http://mirrors.aliyun.com/ubuntu/
--security-mirror=http://mirrors.aliyun.com/ubuntu/
容器創建完畢后,默認的文件系統路徑為/var/lib/lxc/{name}
- 啟動容器
sudo lxc-start {-n name}
- 查看容器信息
sudo lxc-info {-n name}
- 進入容器
sudo lxc-attatch {-n name}
此時就可以像操作正常系統一樣執行命令了。
除此之外,還可以使用lxc-console來登錄容器。
網絡配置
使用網橋配置容器網絡。
- 1)在主機中添加網橋
在主機的/etc/network/interfaces
中添加:
auto br0
iface br0 inet dhcp
bridge_ports enp2s0
bridge_fd 0
bridge_maxwait 0
其中enp2s0是我的主機的唯一網卡,執行/etc/init.d/networing restart
重啟網絡后會發現多了一個br0的網卡
- 2)配置容器的網絡
容器的網絡配置文件默認路徑為/var/lib/lxc/{name}/config
,加入網絡選項:
lxc.network.type = veth
lxc.network.flags = up
# that's the interface defined above in host's interfaces file
lxc.network.link = br0
# name of network device inside the container,
# defaults to eth0, you could choose a name freely
# lxc.network.name = lxcnet0
lxc.network.hwaddr = 00:FF:AA:00:00:01
然后在容器的/etc/network/interfaces/
文件中添加:
auto eth0
iface eth0 inet dhcp
如果容器沒有啟動dhclient服務,則啟動。
- 3)重啟容器
sudo lxc-stop -n ubuntu
sudo lxc-start -n ubuntu
sudo lxc-attatch -n ubuntu
此時發現容器多了一個名為eth0的網卡:
網絡配置完畢。