-
案例一 使用 overlay2 作为 Docker 存储驱动
- 适用场景:在 Debian 主机上运行大量容器,期望获得更好的分层复用与性能。
- 关键步骤:
- 安装 Docker(Debian 示例):sudo apt update && sudo apt install -y docker.io
- 配置使用 overlay2:编辑 /etc/docker/daemon.json
{
“storage-driver”: “overlay2”
}
- 重启 Docker:sudo systemctl restart docker
- 验证:docker info | grep -i “storage|overlay”
- 说明:overlay2 相较早期 overlay 有显著改进,已成为主流默认选项,适合生产使用。
-
案例二 镜像分层与可写层实战(Debian 基础镜像)
- 适用场景:通过 Dockerfile 在 Debian 基础镜像上叠加业务层,理解分层叠加与可写层行为。
- 关键步骤:
- Dockerfile 示例:
FROM debian:latest
RUN apt-get update && apt-get install -y curl
RUN echo “Hello, Overlay2” > /hello.txt
WORKDIR /app
COPY ./app /app
- 构建与运行:
docker build -t my-overlay-app .
docker run --rm my-overlay-app cat /hello.txt
- 说明:每一层只保存与前一层“差异”,容器运行时在可写层进行 写时复制(CoW),镜像层可被多容器共享,节省磁盘与内存。
-
案例三 容器内手动挂载 OverlayFS 共享目录
- 适用场景:需要在容器内对某个目录做“上下层合并视图”(例如把宿主机的只读基目录与容器内可写目录叠加)。
- 关键步骤(容器内具备挂载能力时):
- 准备目录:mkdir -p /lower /upper /work /merged
- 挂载 OverlayFS:
mount -t overlay overlay
-o lowerdir=/lower,upperdir=/upper,workdir=/work
/merged
- 验证:在 /merged 中写入文件,观察 /upper 的变化
- 卸载:umount /merged
- 说明:该方式展示了 OverlayFS 的 lowerdir/upperdir/workdir/merged 语义,便于理解联合挂载的工作原理。生产环境更推荐使用 Docker 的卷或内置存储驱动能力。