暴露安装在 docker 容器内的保险丝

exu*_*sum 8 fuse docker

我正在尝试运行一个 docker 镜像来安装 hubic(在线存储)并将其公开给主机

到目前为止的工作是容器正确安装熔断器(到/mnt/hubic

运行 docker 时,我尝试使用映射的卷运行,因为/path/on/host:/mnt/hubic这似乎可以工作(即,如果目录不存在,则 docker 会创建该目录),但内容从未出现。如果我进入容器,我可以看到在线存储中的文件,但主机文件夹不包含任何内容

我是否缺少允许 docker 执行此操作的选项?

我用来启动容器的命令

docker run -v ~/.hubicfuse:/root/.hubicfuse -v /tmp/mounted:/mnt/hubic --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined -it {container_name}

har*_*ymc 6

解决方案来自安装在容器内的post s3。如何将其暴露给主机?

在这篇文章中描述了一个使用 的解决方案glusterFS,需要容器的更多权限。使用的 docker 命令:

docker run --cap-add SYS_ADMIN --device fuse -v host_mount_dir:container_mount_dir:shared IMAGE COMMAND
Run Code Online (Sandbox Code Playgroud)

对于诸如“路径 /foo 已挂载在 /foo 上,但它不是共享挂载...”之类的错误,原因是 docker 守护进程在与 systemd 不同的挂载命名空间中运行。这是使其在同一命名空间中运行的解决方案:

mkdir -p /etc/systemd/system/docker.service.d/
cat <<EOF > /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
[Service]
MountFlags=shared
EOF
Run Code Online (Sandbox Code Playgroud)

并重新启动 docker 守护进程。

需要注意的是,如果挂载到由-v.