lxc容器中无法访问宿主机物理设备问题解决

文章讲述了如何在LXC(LinuxContainers)容器中允许访问宿主机的物理设备,如通过设置lxc.cgroup.devices.allow和lxc.cgroup.devices.deny来管理设备白名单,以及使用lxc.mount.entry将主机设备挂载到容器中,以实现对特定设备如/dev/tty的访问。此外,lxc-device命令可用于向容器添加设备。
摘要由CSDN通过智能技术生成

lxc容器中无法访问宿主机物理设备问题,可通过如下方法解决:

lxc-cgroup -n xxx devices.list #显示允许容器xxx使用的设备列表

lxc-cgroup -n xxx cpuset.cpus “0,3” #将处理器0和3分配给容器xxx

设备白名单
lxc.cgroup.devices.allow:将设备添加到白名单中;
lxc.cgroup.devices.deny:将设备从白名单中删除;
当前控制组中的白名单列表可从devices.list中得到,白名单列表的每个入口包含四个域,其形式如下:

type major:minor access
1
其中type可选值为:a , c , b ,a表示所有设备,c为字符设备,b为块设备。
major和minor为设备的主从设备号,用整数或者*表示所有设备。
access为访问权限的结合r(读),w(写)和m(mknod)。
如:

c 1:3 mr #允许对/dev/null进行读和mknode操作。
a *:* rwm #允许对所有设备进行读写和mknode操作。

可以在容器配置文件中添加如下:

lxc.cgroup.devices.deny = a

# /dev/null and zero

lxc.cgroup.devices.allow = c 1:3 rwm

lxc.cgroup.devices.allow = c 1:5 rwm

如添加串口设备:

lxc.cgroup.devices.allow = c 4:56 rwm

lxc.mount.entry = /dev/ttyx2 dev/ttyx2 none bind,optional,create=file

其中4和56分别为tty对应的主次设备号,这样容器中即可访问host的ttyx2设备了,同时在容器的文件系统/dev下也可以看到此设备。

也可通过host给容器添加设备,操作方法为:lxc-device -n mylxc add /dev/ttyuart0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a2591748032-随心所记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值