Overlay文件系统是一种联合文件系统,可将多个目录(层)合并为单一视图,常用于容器技术(如Docker)。以下是具体步骤:
确保系统安装fuse-overlayfs(提供Overlay文件系统支持)及依赖包:
sudo yum install -y fuse-overlayfs device-mapper-persistent-data lvm2 Overlay需要四个核心目录:
lowerdir:只读基础层(存储原始文件);upperdir:可写层(存储修改后的文件);workdir:工作目录(存储临时文件,供Overlay内部使用);merged:合并视图(最终呈现的目录,用户访问的入口)。sudo mkdir -p /mnt/overlay/{lower,upper,work,merged} 使用mount命令将目录合并为单一视图:
sudo mount -t overlay overlay \ -o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work \ /mnt/overlay/merged lowerdir:指定只读基础层路径(可多个,用逗号分隔,如lowerdir=/dir1,/dir2);upperdir:指定可写层路径;workdir:指定工作目录路径;/mnt/overlay/merged:合并后的挂载点。通过df -h命令查看挂载状态,确认merged目录已成功挂载:
df -h /mnt/overlay/merged 若需系统重启后自动挂载,需将配置添加到/etc/fstab文件:
echo "overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0" | sudo tee -a /etc/fstab 然后重新加载fstab配置:
sudo mount -a 向merged目录写入文件,验证upperdir是否捕获修改:
echo "Hello, Overlay!" | sudo tee /mnt/overlay/merged/test.txt cat /mnt/overlay/upper/test.txt # 应输出相同内容 Overlay网络是Docker的虚拟网络驱动,允许不同主机上的容器通过VXLAN隧道通信。以下是配置步骤:
确保系统已安装Docker(CentOS 7+默认仓库包含docker-ce):
sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker 编辑/etc/docker/daemon.json文件,设置overlay2为默认存储驱动(Overlay网络依赖overlay2):
sudo vim /etc/docker/daemon.json 添加以下内容(若文件为空,则直接写入):
{ "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } 保存后重启Docker服务:
sudo systemctl restart docker 使用docker network create命令创建Overlay网络,指定子网和网关:
docker network create \ --driver overlay \ --subnet=10.0.0.0/24 \ --gateway=10.0.0.1 \ my-overlay-network --subnet:定义Overlay网络的IP段;--gateway:定义Overlay网络的网关;my-overlay-network:网络名称(自定义)。启动容器时,通过--network参数将其连接到Overlay网络:
docker run -d --name my-container --network my-overlay-network nginx 若容器已在运行,可使用docker network connect命令连接:
docker network connect my-overlay-network existing-container docker network ls docker network inspect my-overlay-network 若需实现跨主机容器通信,需确保:
cluster-store(如Consul)和cluster-advertise(主机IP及端口);4789/UDP);daemon.json配置(需替换为实际Consul地址):{ "cluster-store": "consul://consul-host:8500", "cluster-advertise": "your-host-ip:2376" } 重启Docker服务使配置生效:sudo systemctl restart docker 以上步骤覆盖了CentOS上Overlay的主要配置场景,可根据实际需求选择对应方案。