【发布时间】:2017-09-26 23:23:55
【问题描述】:
我一直在玩弄一个容器来安装 s3 存储桶并将其暴露在外面的可能性。
我使用https://github.com/FindHotel/aws-s3-mount 成功将s3 存储桶安装在容器内。支架正在使用 FUSE。
我找不到从主机访问该 s3 挂载的方法。可能吗?还有其他实现相同目标的想法吗?
谢谢!
【问题讨论】:
标签: docker amazon-s3 containers mount fuse
我一直在玩弄一个容器来安装 s3 存储桶并将其暴露在外面的可能性。
我使用https://github.com/FindHotel/aws-s3-mount 成功将s3 存储桶安装在容器内。支架正在使用 FUSE。
我找不到从主机访问该 s3 挂载的方法。可能吗?还有其他实现相同目标的想法吗?
谢谢!
【问题讨论】:
标签: docker amazon-s3 containers mount fuse
我对 glusterFS 做了类似的事情,它需要更高的容器权限,但它是可行的。简而言之,docker 命令是:
docker run --cap-add SYS_ADMIN --device fuse -v host_mount_dir:container_mount_dir:shared IMAGE COMMAND
如果您收到“路径 /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
然后重新启动 docker 守护进程。 TL;DR:如果您将它挂载到由 -v 绑定的目录中,则挂载将在主机上可见。小心龙;)
【讨论】:
:shared 标志。