lxc简单介绍
来源:互联网 发布:java分布式高并发框架 编辑:程序博客网 时间:2024/05/18 01:54
http://shell909090.org/blog/tag/vm/
基本安装
安装lxc包。
注意修改/bin/sh,链接到/bin/bash。lxc在某些版本上有一个bug,声明为/bin/sh却使用bash语法,导致不如此链接会出现错误。
- lxc on debian wiki
镜像和设定
使用lxc-create -n name -t template
生成镜像。
在/usr/share/lxc/templates可以看到可用的模板。
在/var/cache/lxc/debian会缓存生成过程的临时文件。
生成的镜像需要在镜像内安装lxc,否则无法使用lxc-execute。
资源限制
在config文件内,写入cgroup限定规则。注意,使用内存限定的话,需要在内核参数中加入cgroup_enable=memory。
在debian下,可以修改/etc/default/grub文件,使用update-grub重新生成规则。
GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory quiet"
在config文件中可以如下限定。
lxc.cgroup.memory.limit_in_bytes = 512M # 限定内存lxc.cgroup.cpuset.cpus = 0 # 限定可以使用的核lxc.cgroup.blkio.throttle.read_bps_device = 8:0 100 # 读取速率限定lxc.cgroup.blkio.throttle.write_bps_device = 8:0 100 # 写入速率限定lxc.cgroup.blkio.throttle.read_iops_device = 8:0 100 # 读取频率限定lxc.cgroup.blkio.throttle.write_iops_device = 8:0 100 # 写入频率限定
- cgroups
- blkio-controller
- cpusets
- memory
执行
lxc-start -n name /bin/echo hello
还可以用以下指令,在已经启动的container里执行进程。
lxc-attach -n name /bin/echo hello
以下指令是用来在未启动的container里执行进程的。
lxc-execute -n name /bin/echo hello
** 注意,虽然系统初始化了所有资源,但是由于sysv-init没有执行,因此系统内初始化并没完成。这导致系统不完整,例如网络部分不可用。 **
网络隔离
自行设定的网络
lxc采用veth技术,每次虚拟机建立时,都会产生一对veth。虚拟机内的一般叫做eth0,虚拟机外的叫做vethXXX。这张网卡可以以任何linux许可的方式进行配置。
- dnsmasq所产生的dhcp封包无法被debian guest的dhcp client承认,因此无法使用dnsmasq自动部署网络。
使用iptables配置访问
在开启br-nf后,所有bridge的包都会经过iptables的过滤。因而可以用iptables的FORWARD规则限制guest堆外网的访问。
- bridge-nf
参考
- http://lxc.teegra.net/
0 0
- lxc简单介绍
- lxc的简单介绍和使用
- LXC常用命令介绍
- LXC命令简单使用说明
- LXC 简单实用说明
- Docker 介绍: 相关技术(LXC)
- LXC(Linux containers)常用命令介绍
- lxc
- LXC
- LXC
- lxc
- linux容器技术-LXC相关技术知识介绍
- LXC 学习
- LXC学习
- LXC讲解
- LXC技术研究
- LXC学习
- LXC基础知识
- linux 宏中#和##的用法
- Java中getAbsolutePath()什么意思?
- git push 错误总结
- Echarts填充data
- Java线程:并发协作-生产者消费者模型
- lxc简单介绍
- 随机趋势的时间序列模拟
- 浅谈JAVA反射机制在Android应用开发中的应用
- OpenGL中简单动画之矩形旋转
- Spring MVC 教程,快速入门,深入分析
- Java线程:并发协作-死锁
- 第185天
- Linux下的五大查询指令
- Java线程:volatile关键字