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

use*_*064 1 containers mount fuse amazon-s3 docker

我一直在玩一个可能装有一个s3桶并将其暴露在外面的容器的可能性。

我使用https://github.com/FindHotel/aws-s3-mount将s3存储桶成功安装在容器中。该安装正在使用保险丝。

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

谢谢!

小智 6

我用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 daemon。TL; DR:如果将装载装入到由-v绑定的dir中,则装载在主机上将可见。当心龙;)

  • 这适用于其他安装类型。关键是运行容器时卷(绑定)上的`:shared` 标志。 (2认同)