docker - docker容器内的overlayfs
问题描述
是否可以在(特权)docker 容器中安装覆盖 fs?至少我的直观方法(在容器外运行良好)失败了:
> mkdir /tmp/{up,low,work,merged}
> mount -t overlay overlay -o lowerdir=/tmp/low/,upperdir=/tmp/up/,workdir=/tmp/work/ /tmp/merged/
mount: /tmp/merged: wrong fs type, bad option, bad superblock on overlay, missing codepage or helper program, or other error.
附加信息:
- Docker 版本 18.09.1,构建 4c52b90
- 内核 4.19.0-8-amd64
- Debian 10(主机和 docker-image)
解决方案
找到了有用的东西!将 workdir 和 upperdir 挂载为 tmpfs 对我有用。像这样:
> mkdir /tmp/overlay
> mkdir /tmp/{low,merged}
> mount -t tmpfs tmpfs /tmp/overlay
> mkdir /tmp/overlay/{up,work}
> mount -t overlay overlay -o lowerdir=/tmp/low/,upperdir=/tmp/overlay/up/,workdir=/tmp/overlay/work/ /tmp/merged/
我仍然有兴趣解释为什么在 docker 容器中创建不带 tmpfs 的覆盖失败?
推荐阅读
- mongodb - 使用 Mongodump shell 时,如何从副本集中指定数据库和集合?
- python-3.x - ValueError:无法在位置 0 (Pandas) 解析字符串“2.90 3.50 2.35”
- lua - Roblox Studio 我的脚本只能运行一次
- google-sheets - 计数值在范围内增加的次数 - Google 表格
- node.js - 任何人都可以引导我朝着正确的方向前进,让这个 Azure 函数在它输出“无法找到模块'@azure/functions'的地方?
- concatenation - Libreoffice calc 连接单元格内容和括号
- javascript - 如何在使用 driver.js 创建的弹出框上使用 MathJax?
- javascript - 如何创建一个按钮来更改 Vue.js 中的数组位置?
- node.js - 在 Typeorm SQL 中使用 Node、Express、JWT 重置密码
- json - 我需要帮助了解如何处理涉及代理对的 JSON \u 转义