音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

Linux Container(LXC容器)的基本命令使用简介
日期:2015-11-04 11:02:34   来源:脚本之家

lxc能做什么:
可以为容器绑定特定的cpu和memory,分配特定比例的cpu时间、IO时间,限制可以使用的内存大小(包括内存和swap空间),提供device访问控制,提供独立的namespace(网络、pid、ipc、mnt、uts)。
默认的lxc配置是隔离pids(进程) sysv ipc(进程间通信),和挂载点。如果想运行sshd,就必须提供一个新的网络堆栈和hostname,如果想要避免文件冲突,需要重新挂载冲突文件到不同的地方。如果想要避免所有的冲突,你需要重新挂载一个文件系统。
lxc的实现:
Sourceforge上有LXC这个开源项目,但是LXC项目本身只是一个为用户提供一个用户空间的工具集,用来使用和管理LXC容器。LXC真正的实现则是靠Linux内核的相关特性,LXC项目只是对此做了整合。基于容器的虚拟化技术起源于所谓的资源容器和安全容器。
LXC在资源管理方面依赖与Linux内核的cgroups子系统,cgroups子系统是Linux内核提供的一个基于进程组的资源管理的框架,可以为特定的进程组限定可以使用的资源。LXC在隔离控制方面依赖于Linux内核的namespace特性,具体而言就是在clone时加入相应的flag(NEWNS NEWPID等等)。
lxc常见命令使用:
lxc-version 用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc)
用法:lxc-version
例如:

复制代码
代码如下:
lxc-version


 lxc-checkconfig 用于判断linux内核是否支持LXC
用法:lxc-checkconfig
例如:

复制代码
代码如下:
lxc-checkconfig


lxc-create用于创建一个容器
用法:lxc-create -n name [-f config_file]
         -n 后面跟要创建的容器名字 例如:-n foo
         -f 后面跟容器配置文件的路径
注:1.采用lxc-create创建的容器,在停止运行后,不会被销毁,要采用lxc-destroy命令才能销毁
       2.容器命令空间是全局的,系统中不允许存在重名的容器,如果-n 后面跟一个已经存在的容器名,创建会失败
例如:

复制代码
代码如下:
lxc-create --n foo --f foo.conf


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)并执行。
 
 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


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

复制代码
代码如下:
lxc-stop --n foo


lxc-destroy 用于销毁容器
用法:lxc-destroy -n name
       -n后面跟要停止的容器名
例如:

复制代码
代码如下:
lxc-destroy --n foo


lxc-cgroup 用于获取或调整与cgroup相关的参数
用法:lxc-cgroup -n name subsystem value
        -n 后面跟要调整的容器名
例如:

复制代码
代码如下:
lxc-cgroup -n foo devices.list
lxc-cgroup -n foo cpuset.cpus "0,3"


lxc-info 用户获取一个容器的状态
 用法:lxc-info -n name
       -n后面跟操作的容器名
例如:

复制代码
代码如下:
lxc-info --n foo

注:容器的状态有:STARTING RUNNING STOPPING STOPPED ABORTING


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

复制代码
代码如下:
lxc-monitor -n foo


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

复制代码
代码如下:
lxc-ls


lxc-ps 列出特定容器中运行的进程
用法:lxc-ps
例如:

复制代码
代码如下:
lxc-ps -n foo

查看和调整容器的优先级

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

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

复制代码
代码如下:
lxc-monitor -n name

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

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

暂停和恢复
[/code]lxc-freeze -n name
lxc-unfreeze -n name[/code]

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

复制代码
代码如下:
lxc-stop -n name

销毁
销毁容器是指删除通过 lxc-create 步骤与名称关联的配置文件和元数据:

复制代码
代码如下:
lxc-destroy -n name

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    Windows系统Linux系统苹果MACAndroidiOS系统鸿蒙系统