我目前想知道如何在没有--privileged
的情况下访问加密的USB密钥。假设我有/dev/sda1
个Luks加密密钥和container
一个正在运行的Docker容器。该密钥通过cryptsetup luksOpen /dev/sda1 encrypted_sda1 --key-file=key-file
打开。现在,我可以访问/dev/mapper/encrypted_sda1
。现在,我执行mount /dev/mapper/encrypted_sda1 /media/sda1
,其中/media
在主机和容器之间共享。
现在,我可以从我的主机设备通过/media/sda1
访问密钥的内容。但是从我的容器中(没有privileged
),我不能。我在sda1
/media
的空目录
奇怪的是,如果在将USB密钥安装到/media
后运行容器,我可以从容器访问/media/sda1
。因此,我认为这是因为该卷未正确同步,并且某些权限存在问题。
我不太了解为什么在容器运行时从主机挂载USB密钥时为什么无法访问/media/sda1
。有铅吗?
祝你有美好的一天!
答案 0 :(得分:0)
我认为您需要在--privileged
挂载上配置bind propagation,而不是/media
。默认值为rprivate
,这意味着原始或副本安装点中的任何位置都不会在任何方向上传播安装点。如果您使用rslave
,则原始副本的子副本(例如/media/sda1
)在副本中可见。
docker container run --mount type=bind,source=/media,target=/media,bind-propagation=rslave …