【问题标题】:s3 mounted inside the container. how to expose it to the host?s3 安装在容器内。如何将其暴露给主机?
【发布时间】:2017-09-26 23:23:55
【问题描述】:

我一直在玩弄一个容器来安装 s3 存储桶并将其暴露在外面的可能性。

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

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

谢谢!

【问题讨论】:

    标签: docker amazon-s3 containers mount fuse


    【解决方案1】:

    我对 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 标志。
    猜你喜欢
    • 2019-01-20
    • 2016-12-28
    • 2017-10-12
    • 1970-01-01
    • 2016-03-22
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多