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

s3 mounted inside the container. how to expose it to the host?

我一直在考虑是否有可能有一个容器来安装 s3 存储桶并将其暴露在外面。

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

我找不到从主机访问该 s3 装载的方法。可能吗?还有其他实现相同目标的想法吗?

谢谢!

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

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

如果您遇到类似 "Path /foo is mounted on /foo but it is not a shared mount ..." 的错误,那么您的 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 绑定的目录,挂载将在主机上可见。当心龙 ;)