docker容器内的overlayfs

MNa*_*yer 6 overlay docker unionfs overlayfs

是否可以在(特权)docker 容器内安装覆盖文件系统?至少我的直觉方法在容器外运行良好,但失败了:

> 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.
Run Code Online (Sandbox Code Playgroud)

附加信息:

  • Docker 版本 18.09.1,内部版本 4c52b90
  • 内核 4.19.0-8-amd64
  • Debian 10(主机和 docker-image)

MNa*_*yer 5

找到了有用的东西!将 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/ 
Run Code Online (Sandbox Code Playgroud)

我仍然有兴趣解释为什么在 docker 容器中创建不带 tmpfs 的覆盖会失败?