LXC是linux内核中支持的一个功能,是Docker的原型基础。
为linux server配置LXC
安装LXC
> sudo apt-get install lxc
> sudo apt-get install libcgmanager0 --upgrade
创建container
> sudo lxc-create -t <template> -n <container name>
> sudo lxc-create -t ubuntu -n cn-02
This creates a container using the Ubuntu template and calls it cn-02。
# The default user is 'ubuntu' with password 'ubuntu'!
# Use the 'sudo' command to run tasks as root in the container.
列出host里存在的container
sudo lxc-ls
启动一个container
sudo lxc-start -n
加参数-d可以让容器在后台运行。可以再用lxc-console让回到前台
进入一个正在运行的container
lxc-console -n
。
退出正在前台的container
To escape out of the container’s console back to the host’s console, use the “Ctrl-a q” key sequence (press Ctrl-a, release, then press q).
挂起一个container
lxc-freeze -n
恢复一个container
lxc-unfreeze -n
克隆一个container
lxc-clone -o
-n
停止一个container
lxc-stop -n
容器文件
LXC is configured by default to start containers in /var/lib/lxc 每个容器的文件都放在/var/lib/lxc,以容器名为目录名,Ubuntu的容器大概340M。
容器的conf配置文件
每个容器都有自己的conf文件
lxc.network.type 指明容器的网络类型,比如veth,macvlan,vlan
lxc.network.veth.pair 指明主机中veth interface的名称
lxc.network.link #the interface defined above in host's interfaces file, 指明veth pair所对应的bridge
lxc.network.name #name of network device inside the container, defaults to eth0, you could choose a name freely
lxc.network.ipv4
lxc.rootfs 指明容器系统根目录的位置
host主机的lxc相关配置文件
/etc/default/lxc
/etc/default/lxc-net lxc的lxc-net服务的配置文件
USE_LXC_BRIDGE="false"
LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf
LXC_DOMAIN="lxc"
默认的容器配置
/etc/lxc/default.conf 新建的container会从这里拿配置。
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx
/etc/dnsmasq.d/lxc
bind-interfaces
except-interface=lxcbr0
容器资源
一般一个核心对应了一个线程,而intel开发出了超线程技术,1个核心能够做到2个线程计算。
在CPU的配置信息里有一项”Hyper-Threading Technology”的开关。