天天看点

LXC部分重要配置文件及文件夹分析

本次分析使用的LXC版本为1.0.1,操作系统使用的为ubuntu 14.04 32bit。

1、  有两个启动工作(下面两个脚本文件在lxc启动和关闭的时候执行):

          a./etc/init/lxc-net.conf: 当/etc/default/lxc中指定了USE_LXC_BRIDGE=”true”时就执行/etc/init/lxc-net.conf,但是/etc/default/lxc中的USE_LXC_BRIDGE又会被/etc/default/lxc-net中定义的USE_LXC_BRIDGE覆盖。/etc/default/lxc-net指定了虚拟机的网络配置信息,如果USE_LXC_BRIDGE=”true”,就会按照/etc/default/lxc-net中指定的方式创建虚拟网桥等。如果修改了/etc/default/lxc-net中的网络配置信息,则还要修改/etc/init/lxc-net.conf中相应的脚本参数,对于每一个已经创建了的容器,还要更新/etc/lxc/default.conf以及每一个容器对应的/var/lib/lxc/<container>/config配置文件。当修改/etc/default/lxc中的USE_LXC_BRIDGE=”false”时,/etc/init/lxc-net.conf会立即停止。当/etc/init/lxc-net.conf停止的时候,将会关闭它运行时创建的网桥,除非有一个容器正在使用这个网桥。

          b./etc/init/lxc.conf,当/etc/default/lxc中指定了LXC_AUTO="true"时,执行/etc/init/lxc.conf,该脚本执行在/etc/lxc/auto/文件夹中的容器在启动的时候需要执行的配置文件的符号链接。/etc/lxc/auto/中保存的是需要自启动的容器的配置文件链接。LXC启动时就是检查这个文件夹来决定自启动哪个容器的。

2、  /etc/lxc/default.conf:这个配置文件是在创建容器时执行的默认配置文件。这个配置文件引导容器使用由/etc/init/lxc-net.conf创建的LXC网桥。如果创建容器的时候没有指定配置文件,就会使用这个默认的配置文件。

3、  /usr/share/doc/lxc/examples/中的配置文件,是一些创建容器时使用的一些配置文件范例,这些范例显示了如何创建不同网络的容器等。

4、  /usr/lib/i386-linux-gnu/lxc/lxc-init是由lxc-execute使用的一个很小的轻量级的init二进制文件,当用lxc-execute在容器中执行应用程序时,不需要启动整个虚拟机,而是只挂载少量的文件系统,特别是/proc,lxc-init运行之后将会等待指定的应用程序的进程以及相关的进程运行完毕,当应用程序的进程退出之后,lxc-init也会退出,在这个临时容器中lxc-init的pid是1,应用的进程pid从2开始。

5、  /usr/lib/lxc/templates中保存的是可以用来创建不同版本的容器(如ubuntu、fedora)的模板,当前不是所有的容器版本都支持。

6、  /var/lib/lxc中保存的是所有的容器rootfs,以及它们的配置文件。

7、  /var/cache/lxc中保存的是不同的容器版本,用来加快相应版本容器的创建过程,如果cache中没有相应的数据,创建容器的时候会自动从官方网站下载对用版本容器的数据,然后将下载好后的数据保存在/var/cache/lxc中,这样,下次创建这个版本的容器是,直接复制容器信息即可,加快了容器的创建过程。

LXC