如果在linux中所有东西都是“只是”一个文件,那么/dev中的文件/节点与其他文件有什么不同,比如对接者必须以不同的方式处理它们?对接器对设备文件有什么不同的操作?我希望它是一个更详细的绑定命令的缩写吗?
实际上,在对设备文件(如--volume /dev/spidev0.0:/dev/spidev0.0 )执行常规绑定挂载后,用户在试图访问设备时会在停靠器容器中获得“拒绝权限”。当通过--device /dev/spidev0.0:/dev/spidev0.0进行绑定时,它按预期的方式工作。
发布于 2021-01-01 01:17:16
码头运行参考页面有一个指向cgroup设备白名单控制器上的Linux内核文档的链接。从几个方面来说,在容器中作为根用户运行的进程比主机上作为根进程运行的进程稍微受限一些:如果没有特殊的附加权限(功能),您就无法重新启动主机、挂载文件系统、创建虚拟NIC或其他各种系统管理任务。设备系统与能力系统是分离的,但它的精神是相同的。
另一种将此视为安全特性的方法是。容器通常不应该能够访问主机的文件系统或其他进程,即使它是作为root运行的。但是,如果容器进程可以mknod kmem c 1 2和访问内核内存,或者mknod sda b 8 0猜测主机的硬盘看起来像一个SCSI磁盘,理论上它可以通过直接访问低级别资源来逃避这些限制。cgroup设备限制可防止此情况发生。
由于Docker是一个隔离系统,容器是无法访问主机资源的受限环境,因此运行需要物理设备或主机文件的任务充其量是不方便的。如果Docker的隔离特性没有意义,那么进程可能在主机上运行得更好,而不涉及Docker。
https://stackoverflow.com/questions/65525991
复制相似问题