在Ubuntu上使用Overlay实现文件共享,主要有以下两种场景及操作步骤:
安装必要工具
确保内核支持OverlayFS(Ubuntu默认支持),安装overlayroot
:
sudo apt update && sudo apt install overlayroot
创建目录结构
建立lower
(基础层)、upper
(修改层)、work
(工作层)和merged
(挂载点)目录:
sudo mkdir -p /lower /upper /work /merged
挂载OverlayFS
使用mount
命令合并目录:
sudo mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
lowerdir
:基础文件层(可提前放入文件)。upperdir
:存储修改的文件,所有写入操作仅影响此层。验证与使用
查看/merged
目录,可看到lower
和upper
的合并内容,对/upper
的修改会实时反映在/merged
中:
ls -l /merged
持久化配置(可选)
编辑/etc/fstab
,添加以下内容实现开机自动挂载:
overlay /merged overlay defaults,lowerdir=/lower,upperdir=/upper,workdir=/work 0 0
配置Docker存储驱动
编辑/etc/docker/daemon.json
,设置storage-driver
为overlay2
:
{
"storage-driver": "overlay2"
}
重启Docker生效:
sudo systemctl restart docker
创建共享卷
在Docker中通过-v
参数挂载upper
目录到多个容器:
docker run -it --name container1 -v /path/to/shared-dir:/upper ubuntu
docker run -it --name container2 -v /path/to/shared-dir:/upper ubuntu
多个容器通过挂载同一upper
目录实现文件共享。
lower
、upper
目录权限正确,避免访问冲突。upper
目录需存储在持久化存储(如本地磁盘或网络存储),避免容器重启后数据丢失。