-
案例一 Docker 单机使用 OverlayFS 作为存储驱动
- 适用场景:提升镜像层复用、减少磁盘占用、获得更好的容器启动与分层管理体验。
- 关键步骤:
- 准备支持 d_type 的 XFS(推荐):mkfs.xfs -n ftype=1 /dev/sdX;如用 ext4 需确认已启用 d_type。
- 配置 Docker 使用 overlay2:编辑 /etc/docker/daemon.json,设置 “storage-driver”: “overlay2”,重启 Docker。
- 验证:docker info | grep -i “storage driver”。在生产中,overlay2 是 Docker 的默认与推荐存储驱动。
-
案例二 Docker Swarm 跨主机 Overlay 网络
- 适用场景:多台 CentOS 主机上的容器需要像在同一局域网内互通,并支持基于 DNS 的服务发现。
- 关键步骤:
- 准备至少 3 台 CentOS 7/8 主机,互通网络;建议统一主机名并重启 Docker。
- 在管理节点初始化 Swarm:docker swarm init;工作节点加入:docker swarm join --token :2377。
- 创建可附加的 Overlay 网络:docker network create -d overlay --attachable overlay_net。
- 验证:在各节点启动容器并连接到 overlay_net,使用 ping 或 docker exec 进行连通性与 DNS 解析测试。
-
案例三 Kubernetes 集群的 Overlay 网络(以 Calico 为例)
- 适用场景:在 CentOS 上部署生产级 Kubernetes,通过 CNI 插件提供 Pod 的跨节点网络。
- 关键步骤:
- 使用 kubeadm 初始化集群(kubeadm init),安装 kubelet/kubectl。
- 部署 Calico 网络插件:kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml。
- 验证:kubectl get pods -n kube-system | grep calico;部署测试 Pod 并检查跨节点通信。
-
案例四 手动挂载 OverlayFS 用于只读根叠加与临时写层
- 适用场景:构建只读系统叠加临时写层、LiveCD/救援环境、CI 构建隔离层等。
- 关键步骤:
- 创建目录:mkdir -p /ovl/{lower,upper,work,merged}。
- 挂载 OverlayFS:mount -t overlay overlay
-o lowerdir=/ovl/lower,upperdir=/ovl/upper,workdir=/ovl/work
/ovl/merged。
- 验证:在 /ovl/merged 中写入文件应落在 upper,删除下层文件会在 upper 生成 whiteout 标记。