Ubuntu 中 Overlay 的正确配置指南
一 场景与准备
sudo apt update && sudo apt install -y fuse-overlayfssudo apt install -y docker-ce docker-ce-cli containerd.io二 配置 OverlayFS 文件系统层叠
/mnt/lower(可指向只读镜像或现有目录)/mnt/overlay/upper/mnt/overlay/work/mnt/overlay/mergedsudo mkdir -p /mnt/lower /mnt/overlay/{upper,work,merged}sudo mount -t overlay overlay -o lowerdir=/mnt/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work /mnt/overlay/merged/etc/fstab 追加:
overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0sudo mount -amount | grep overlaydf -h /mnt/overlay/mergedls /mnt/overlay/mergedsudo umount /mnt/overlay/mergedsudo apt install -y overlayrootsudo nano /etc/overlayroot.conf,将 enabled=yes,并按需设置 lowerdir/upperdir/workdir/mergedir(多数场景使用默认配置即可,修改前务必备份)。三 配置 Docker Overlay 网络(容器跨主机通信)
sudo apt install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker && sudo systemctl enable dockersudo docker swarm init(如已加入集群可跳过)sudo docker network create --driver overlay my-overlaysudo docker run -dit --name c1 --network my-overlay ubuntusudo docker run -dit --name c2 --network my-overlay ubuntusudo docker exec -it c1 ping c2docker network ls、docker network inspect my-overlay、docker network rm my-overlay四 常见问题与排查
upperdir 与 workdir 必须在同一文件系统;目录需存在且权限正确(建议使用 root 操作)。mount -a 无误再重启;如配置错误导致无法启动,可在引导菜单选择不启用 overlayroot 的条目或使用 LiveCD 修正 /etc/fstab。lowerdir=/lower1:/lower2[:...]。