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 绑定的目录,挂载将在主机上可见。当心龙 ;)
我一直在考虑是否有可能有一个容器来安装 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 绑定的目录,挂载将在主机上可见。当心龙 ;)