lxc常见命令

  1. lxc-version
    用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc)
    用法:lxc-version
    例如:
    代码如下:lxc-version

  2. lxc-checkconfig
    用于判断linux内核是否支持LXC
    用法:lxc-checkconfig
    例如:
    代码如下:lxc-checkconfig

  3. lxc-create
    用于创建一个容器
    用法:lxc-create -n name [-f config_file][-t template]
    -n 后面跟要创建的容器名字 例如:-n foo
    -f 后面跟容器配置文件的路径
    -t 是容器的模板,其中模板是一个脚本文件,执行了一系列操作,包括创建容器时挂载文件系统,配置网络,安装必要软件,创建用户/属组,设置密码

注:1.采用lxc-create创建的容器,在停止运行后,不会被销毁,要采用lxc-destroy命令才能销毁
2.容器命令空间是全局的,系统中不允许存在重名的容器,如果-n 后面跟一个已经存在的容器名,创建会失败
例如:
代码如下:lxc-create –n foo –f foo.conf

4 lxc-execute
用于在一个容器执行应用程序
用法: lxc-execute -n name [-f config_file] [ -s KEY=VAL ]command
-n 后面跟容器名字(容器名字用于管理容器)例如:-n foo
-f 后面跟容器配置文件的路径(如果没有配置文件,可以直接用-s指定配置选项,如果什么都没有,系统采用默认策略)例如:-f foo.conf
-s 后面跟配置键值对 例如:lxc.cgroup.cpu.shares=512
command 为要执行的命令 例如:/bin/bash
这个命令会mount /proc 并且会自动创建/销毁容器。
注:1.如果容器还不存在,lxc-execute会自动创建一个,容器停止运行后会被自动销毁
2.用lxc-execute启动应用程序,配置优先级如下:
如果指定-f选项,那么之前创建容器(如果容器是已存在的)的配置文件不会被使用
如果指定-s选项,则在命令行中的配置键值对会覆盖配置文件(无论之前的还是-f指定的)相同配置
例如:
代码如下:lxc-execute –n foo –s lxc.cgroup.cpu.shares=512 /bin/bash
使用实际例子:

代码如下:lxc-execute -n test /bin/bash
这个会启动一个lxc并给出类似的一个cmd窗口,网络是与操作系统共用的,这里好像仅仅是创建了一个命名空间
如果没有指定-f,默认的隔离将被使用,这个命令当你需要一个快速在一个隔离的环境中运行程序。在物理机上和container中都会运行lxc-init,在宿主机上面,这个程序用于转发lxc-kill 信号到已经启动的程序中 ,在container中,这个程序的pid为1,它会fork出要执行的命令(pid为2)并执行。

5 lxc-start
用于在容器中执行给定命令
用法:lxc-start -n name [-f config_file] [-c console_file] [-d] [-s KEY=VAL]
[command]
-d 将容器当做守护进程执行
-f 后面跟配置文件
-c 指定一个文件作为容器console的输出,如果不指定,将输出到终端
-s 指定配置
如果没有指定命令,lxc-start 将要运行 /sbin/init
例如:
代码如下:lxc-start -n foo -f foo.conf -d /bin/bash
注: 1.如果容器还不存在,lxc-start会自动创建一个,容器停止运行后会被自动销毁
2.lxc-start配置优先级与lxc-execute相同
3.lxc-start 与lxc.execute的异同:
lxc-start 和 lxc-execute都可以在容器中启动进程,区别在于lxc-start直接创建进程,lxc-execute先创建lxc-init进程,然后在lxc-init中fork一个进程来执行。(关于第4点,lxc-init所占的是一个什么样的地位?)
The orphan process group and daemon are not supported by this command,
use the lxc-execute command instead
If no command is specified, lxc-start will use the default “/sbin/init”
command to run a system container.
4.lxc-start用于在容器启动system,lxc-execute用于在容器执行应用程序

lxc-kill 发送信号给容器中的第一个用户进程(容器内部进程号为2的进程)
用法:lxc-kil -n name SIGNUM
-n 后面跟容器名
SIGNUM 信号 (此参数可选,默认SIGKILL)
例如:
代码如下:lxc-kill -n foo

6 lxc-stop
用于停止容器中所有的进程
用法:lxc-stop -n name
-n后面跟要停止的容器名
例如:
代码如下:lxc-stop –n foo

7 lxc-destroy
销毁容器
用法:lxc-destroy -n name
-n后面跟要停止的容器名
例如:
代码如下:lxc-destroy –n foo

8 lxc-cgroup
获取或调整与cgroup相关的参数
用法:lxc-cgroup -n name subsystem value
-n 后面跟要调整的容器名
例如:
代码如下:lxc-cgroup -n foo devices.list
lxc-cgroup -n foo cpuset.cpus “0,3”

9 lxc-info
查看一个容器的状态
用法:lxc-info -n name
-n后面跟操作的容器名
例如:
代码如下:lxc-info –n foo
注:容器的状态有:STARTING RUNNING STOPPING STOPPED ABORTING
状态已经为stopped

10 lxc-monitor
监控一个容器状态的变换,当一个容器的状态变化时,此命令会在屏幕上打印出容器的状态
用法:lxc-monitor -n name
例如:
代码如下:lxc-monitor -n foo

11 lxc-ls
列出当前系统所有的容器
用法:lxc-ls
例如:
代码如下:lxc-ls

在创建容器之后可能会报错,找不到该命令,因为lxc-ls是lxc-extra包中的一部分,所以需要在电脑中安装该包
1.yum install -y /usr/bin/lxc-ls
2.yum whatprovides /usr/bin/lxc-ls
其中whatprovides查看该命令是由哪个包提供的

12 lxc-ps
列出特定容器中运行的进程
用法:lxc-ps
例如:
代码如下:lxc-ps -n foo

13 查看和调整容器的优先级

代码如下:lxc-priority -n name
lxc-priority -n name -p priority

144 持续观察容器的状态和优先级变化:

代码如下:lxc-monitor -n name

LXC 使用 cgroup 文件系统管理容器。可以通过 LXC 读和操纵 cgroup 文件系统的一些部分。要管理每个容器对 cpu 的使用,则可以通过读取和调整容器的 cpu.shares 来进行:

代码如下:lxc-cgroup -n name cpu.shares
lxc-cgroup -n name cpu.shares howmany

15 lxc-freeze
暂停和恢复


lxc-freeze -n name
lxc-unfreeze -n name

16 lxc-stop
停止一个容器将导致该容器中启动的所有进程全体死亡,并且清理容器:

代码如下:lxc-stop -n name

17 lxc-destory
销毁容器是指删除通过 lxc-create 步骤与名称关联的配置文件和元数据:
可以根据continer的名字删除特定的容器。所有创建的容器都存放在/var/lib/lxc目录下。
代码如下:lxc-destroy -n name

猜你喜欢

转载自blog.csdn.net/tang_jin2015/article/details/78859506