Linux 宿主机挂载 s3 对象存储,docker 内没有生效问题

文章目录

    ❓ 诡异的现象

    Linux 宿主机上通过 mount 挂载了一个 s3 对象存储(参考:s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统)。并且修改了 /etc/fstab 文件。

    但是,在 docker 中,对应的目录还是显示的没有挂载前的目录结构和文件内容。

    👌 解决方法

    docker 容器重启即可。例如,命令

    docker compose restart xxx
    

    🗑 卸载

    如果是卸载挂载盘,参考前文(🔗 ubuntu server 下使用 /etc/fstab 挂载的 s3 存储目录,如何卸载掉)也是同样的需要 restart docker 容器才能在容器生效。

    需要注意,一定不要忘记使用

    df -h
    

    命令查看是否成功卸载了,因为会遇到卸载不成功的情况,而且没有任何错误提示。😅

    💡 分析

    可以把 docker 容器想象成一个跟宿主机类似的系统。宿主机在没有使用 mount 命令时,也是无法挂载生效的。如果只修改了 fstab 配置文件,不执行 mount 命令,宿主机也是需要重启系统才能看到挂载的 s3 object storage。

    docker 中执行 mount 命令太长,不方便操作。还不如 restart 容器方便。

    还是之前的感觉😂,用了 docker 很多地方是反直觉的,很容易漏掉操作。

    Linux 运维经验喜 +1 ✌️

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式