s3安装在容器内。如何将其暴露给主机?

时间:2017-04-28 18:48:20

标签: docker amazon-s3 containers mount fuse

我一直在玩弄容器安装一个s3水桶并将其暴露在外面。

我使用https://github.com/FindHotel/aws-s3-mount成功地将s3存储桶安装在容器内。 mount正在使用FUSE。

我无法找到从主机到达s3 mount的方法。可能吗?还有其他想法可以达到同样的目标吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

我使用glusterFS做类似的事情,它需要更高的容器权限,但它是可行的。简而言之,docker命令是:

docker run --cap-add SYS_ADMIN --device fuse -v host_mount_dir:container_mount_dir:shared IMAGE COMMAND

如果你得到类似&#34的错误; Path / foo挂载在/ foo上,但它不是共享挂载..."然后你的docker守护进程运行在与systemd不同的mount命名空间中。有一种简单的方法可以在同一名称空间中使用它:

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绑定的目录中。小心龙;)