千家信息网

Linux Container的基本命令是什么

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"Linux Container的基本命令是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux Container的基本命令是什
千家信息网最后更新 2025年01月23日Linux Container的基本命令是什么

本篇内容主要讲解"Linux Container的基本命令是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux Container的基本命令是什么"吧!

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

到此,相信大家对"Linux Container的基本命令是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

容器 代码 命令 进程 配置 文件 系统 运行 程序 状态 管理 内核 优先级 用户 空间 资源 调整 隔离 信号 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京国际互联网科技安全博览会 崇明区微型网络技术推荐货源 从哲学角度分析网络安全问题 自学软件开发视频教程 新丰金服网络技术服务有限公司 邵芬红李珊数据库原理答案 安徽土淘金网络技术有限公司 网络安全厂家的销售好不好做 数据库线程优化 软件开发人员执行考核办法 web应用程序服务器错误 青岛青华互联网络技术 rfid资产管理服务器 福州市翔升软件开发有限公司 网络技术工作有哪些 临沂博深网络技术有限公司 软件开发人员优点 b站无法连接服务器 软件开发网站类型 附加数据库文件 央视12天网关于网络安全 湖南壹搜网络技术有限公司照片 软件开发过程工程师自我价值 辽宁实用的外贸软件开发公司 深圳朝阳网络技术有限公司 r210服务器管理口 青岛阿里云服务器哪家好 企业网络安全事件产生的主要原因 软件开发岗前培训内容 网站服务器的建立安全连接
0