Podman卷挂载能否排除特定子目录?能否仅用run参数实现?
Podman挂载目录排除指定子目录的实现方式
可行,并且可以通过组合podman run的参数实现,具体方法如下:
临时文件系统覆盖法:
先通过-v参数将整个dir/目录挂载到容器内的目标路径,再用--tmpfs参数将容器内对应的subdir子目录挂载为临时文件系统。这样容器内的subdir会被空的临时目录覆盖,不会显示宿主机dir/subdir/下的内容,同时容器对该目录的写入仅存在于内存中,不会影响宿主机。
示例命令:podman run -v ./dir:/mnt/dir --tmpfs /mnt/dir/subdir:ro [你的镜像名称]其中
:ro为可选配置,用于限制容器对该临时目录的写入权限,若不需要只读权限可省略。注意:Podman原生没有直接的“挂载目录时排除子目录”参数,上述方法是通过覆盖子目录的方式间接实现需求。如果需要完全隐藏容器内的
subdir目录(而非用空目录覆盖),则需要先在宿主机通过overlay文件系统构建不含该子目录的挂载层,再将这个挂载层挂载到容器,这种方式需要额外的宿主机操作,无法仅通过podman run参数完成。
内容的提问来源于stack exchange,提问作者WillHJanes
相关产品推荐
相关产品推荐

