Linux Containers
LXC

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”的开关。

*****
Written by Lu.dev on 05 July 2016