在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
目錄需存儲在持久化存儲(如本地磁盤或網絡存儲),避免容器重啟后數據丟失。