文档章节

Linux LXC基本配置选项

China_OS
 China_OS
发布于 2014/05/12 17:24
字数 1894
阅读 635
收藏 1

     LXC总是先创建后使用,当一个进程在LXC中运行的时候,进程依赖于一些在lxc创建时配置的一些系统资源的虚拟化和隔离。默认的一些pids、sysv ipc、mount points都会被虚拟化出来和隔离起来,这些配置可以明确的在一个配置文件中定义,例如:如果在创建时没有指定network配置,则lxc会共享创建lxc容器的network环境,但是如果指定了network的配置,则会为lxc创建出一个新的network栈。

     配置文件定义了不同的系统资源给lxc使用,目前utsname、network、mount points、root file system、user namespace、cgroup被支持。配置文件中的每个值都是key=value的格式。

     为了减轻管理员管理多个lxc实例的鸭梨,lxc的配置文件可以嵌套在一个文件中,比如:network的配置可以配置在一个单独的文件中,然后这个network配置文件可以被多个lxc实例使用。所以lxc实例迁移到其他机器时只需要更新这个文件而已。

#指定了要加载的配置文件
lxc.include=/path/file
     lxc配置文件还允许你设置lxc实例的架构,例如:你可以在64位的宿主机器上面运行一个32位的容器的32位程序。

#值可以使用x86、i686、x86_64、amd64
lxc.arch=
     ustname选项定义了lxc容器的hostname、这意味着lxc容器可以有自己的hostname

#设置hostname
lxc.utsname=
      lxc还允许你定义一个信号数字,当你在使用lxc-stop命令停止一个lxc实例的时候,可以使用该信号停止实例。例如:SIGKILL、SIGRTMIN+14等等

#设置信号
lxc.stopsignal=
      network选项定义了容器实例虚拟出来的network环境,network虚拟化工作在第二层,为了使用network虚拟化,必须为lxc容器定义一个网络接口,可以设置多个网络接口在一个lxc实例上面,即时宿主机上只有一个物理网口。

#指定lxc容器使用哪种类型的虚拟网络,几个虚拟化网络可以指定在同一个容器中,作为多个虚拟网口使用,虚拟网络主要有以下类型:empty、veth、valn、macvlan、phys。
#empty:只会创建一个loopback接口
#veth:一个和宿主机等同的网络设备会被建立,容器将连接到lxc.network.link定义的网桥上面,从而与外部通讯,网桥必须事先建立好。默认情况下lxc会自动为创建好的网络设备指定一个名称,如果你希望自己指定名称,可以使用lxc.network.veth.pair定义
#vlan:一个vlan接口会被连接到lxc.network.link指定的接口上,vlan id通过lxc.network.vlan.id来指定
#macvlan:一个macvlan接口会被连接到lxc.network.link指定的接口上,lxc.network.macvlan.mode设置macvlan的模式。
#phys:建立一个新网络空间,lxc.network.link指定的物理接口会被分配给容器
lxc.network.type=


#指定network的状态,up使网络处于可用状态
lxc.network.flags=up

#设置一个接口用于真实的流量传输,比如一个网桥接口、一个真实物理接口
lxc.network.link=

#默认的网络设备名称是自动分配的,如果要自己指定,则可以手动设置,例如:eth0
lac.network.name=

#默认网络接口的mac是自动分配的,你也可以自己指定
lxc.network.hwaddr=

#指定一个ipv4地址作为虚拟网络的ip地址,可以指定多个虚拟网络地址
lxc.network.ipv4=

#设置一个ipv4格式的地址,作为容器内部的gateway,你也可以设置为auto模式,这样意味着你从网桥获取地址,并把它作为gateway。auto只能用于veth金额macvlan
lxc.network.ipv4.gateway=

#设置一个ipv6地址作为虚拟网络的地址
lxc.network.ipv6=

#指定一个ipv6地址作为gateway,也可以设置为auto,自动到网桥去获取。auto只能用于veth和macvlan模式
lxc.network.ipv6.gateway=

#指定一个脚本,在容器创建好虚拟网络后执行。
lxc.network.script.up=

#
lxc.network.script.down=
      在严格隔离容器里面,可以有自己私有的pseudo tty接口

#设置容器有自己的pseudo tty接口,value指定了最大的tty数目
lxc.pts=
      如果容器有配置root filesystem和inittab文件,则你可以设置output输出到那个console中

#指定一个文件的路径,然后console的输出会写到该文件中,none会disable该功能
lxc.console=
      也可以设置通过ttys连接console

#
lxc.tty=
      开启kmsg软连接

#创建/dev/kmsg到/dev/console的软连接
lxc.ksmg=
      mount points选项指定不同的挂载点,这个挂载点是容器私有的额,在进程外部是看不到的。

#指定一个文件位置,该文件是fstab格式的,里面包含了挂载信息。
lxc.mount=

#在一行中指定一个挂载点,是fatab格式的。不用写在fstab文件中
lxc.mount.entry=
      容器的root文件系统可以使用不同于宿主机的系统

#指定容器的root文件系统。可以使一个镜像文一个目录、一个块设备,如果没有指定,则容器和宿主机共享一个文件系统,设定此项以后,容器内所有进程将会把此目录根目录。
lxc.rootfs=

#在旋转之前递归的绑定root文件系统?
lxc.rootfs.mount=

#在lxc.rootfs下面的那个目录转动原来的root文件系统,默认是mnt目录。
lxc.pivotdir=
      cgroup选项可以配置不同的子系统,lxc不检查子系统名称的正确性。详细的cgroup介绍请看:xxxxxx

#设置子系统,例如:lxc.cgroup.cpuset.cpus
lxc.cgroup.[subsystem name]
      如果容器以root用户运行,则可以禁止一些功能

#指定在容器中禁止哪些功能,在一行中定义几个cap,用空格分开,都是以'CAP_'开头,具体cap可以参考http://manpages.ubuntu.com/manpages/saucy/man7/capabilities.7.html
lxc.cap.drop=

#在容器中保持哪些cap
lxc.cap.keep=
      UID映射,在容器中可以开启私有的user namespace。例如:你可以映射容器中的uid 0到宿主机的uid 20000上。容器中的root用户只是限制于容器中。

#value的第一个字母是'u'或者'g',代表是用户还是组要进行映射,接下来是第一个容器中要被映射的user id,最后是宿主机中user id
lxc.id_map=
      日志设置,在容器中也是可以设置日志信息的。容器的启动日志只收集ERROR级别的信息,记录到以容器名开头,以.log结尾的文件中,或者记录在/var/log/lxc下面。默认的日志级别和日志路径都是可以在配置文件中修改的。

#指定日志级别,value是0到8的整数,0=trace,1=debug,2=info,3=notice,4=warn, 5=error,6=critical,7=alert,8=fatal.
lxc.loglevel=

#指定日志路径
lxc.logfile=

下面给出一个例子:

lxc.utsname = complex
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588
lxc.network.type = macvlan
lxc.network.flags = up
lxc.network.link = eth0
lxc.network.hwaddr = 4a:49:43:49:79:bd
lxc.network.ipv4 = 10.2.3.4/24
lxc.network.ipv4 = 192.168.10.125/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596
lxc.network.type = phys
lxc.network.flags = up
lxc.network.link = dummy0
lxc.network.hwaddr = 4a:49:43:49:79:ff
lxc.network.ipv4 = 10.2.3.6/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297
lxc.cgroup.cpuset.cpus = 0,1
lxc.cgroup.cpu.shares = 1234
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 1:3 rw
lxc.cgroup.devices.allow = b 8:0 rw
lxc.mount = /etc/fstab.complex
lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0
lxc.rootfs = /mnt/rootfs.complex
lxc.cap.drop = sys_module mknod setuid net_raw
lxc.cap.drop = mac_override


可以参看一下:运维和开发

© 著作权归作者所有

China_OS
粉丝 428
博文 463
码字总数 520158
作品 0
静安
技术主管
私信 提问
如何进入 Docker 容器

在前几篇文章[1,2,3]里,Lukas Pustina简单地介绍了使用Docker进行系统级虚拟化。在这篇文章里,我将讨论四种连接Docker容器并与其进行交互的方法。例子中所有的代码都可以在GitHub中找到,你...

oschina
2014/07/23
49.8K
8
LXC:Linux 容器工具

容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模 拟,也不需要即时编译。容器可以在核心 CP...

红薯
2009/03/05
785
0
LXC 容器集chroot使用说明

1.1 LXC是什么? 1.1.1 关于LXC LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一...

惨绿少年
2018/02/09
0
0
LXC简介及通过LXC在CentOS上构建单机集群

LXC介绍 linux container(LXC)就是一种操作系统级的虚拟化技术。是基于Linux操作系统的虚拟化技术,翻译为linux 容器。它可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解...

加油2018
2013/09/06
3.9K
0
lxc基本命令lxc-checkconfig,lxc-create等命令

用于判断linux内核是否支持LXC #查看是否支持docker lxc-checkconfig [root@centos ~]# lxc-checkconfig Kernel configuration not found at /proc/config.gz; searching... Kernel configur......

Mr_sheng
2018/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
5
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部