温馨提示×

Overlay配置CentOS步骤是什么

小樊
38
2025-09-26 14:40:33
栏目: 智能运维

CentOS上配置Overlay的步骤(分为文件系统与Docker网络两类场景)

一、Overlay文件系统配置(适用于本地文件系统合并)

Overlay文件系统是一种联合文件系统,可将多个目录(层)合并为单一视图,常用于容器技术(如Docker)。以下是具体步骤:

1. 安装必要软件包

确保系统安装fuse-overlayfs(提供Overlay文件系统支持)及依赖包:

sudo yum install -y fuse-overlayfs device-mapper-persistent-data lvm2 
2. 创建目录结构

Overlay需要四个核心目录:

  • lowerdir:只读基础层(存储原始文件);
  • upperdir:可写层(存储修改后的文件);
  • workdir:工作目录(存储临时文件,供Overlay内部使用);
  • merged:合并视图(最终呈现的目录,用户访问的入口)。
sudo mkdir -p /mnt/overlay/{lower,upper,work,merged} 
3. 挂载Overlay文件系统

使用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:合并后的挂载点。
4. 验证挂载

通过df -h命令查看挂载状态,确认merged目录已成功挂载:

df -h /mnt/overlay/merged 
5. 持久化配置(可选)

若需系统重启后自动挂载,需将配置添加到/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 
6. 测试功能

merged目录写入文件,验证upperdir是否捕获修改:

echo "Hello, Overlay!" | sudo tee /mnt/overlay/merged/test.txt cat /mnt/overlay/upper/test.txt # 应输出相同内容 

二、Docker Overlay网络配置(适用于跨主机容器通信)

Overlay网络是Docker的虚拟网络驱动,允许不同主机上的容器通过VXLAN隧道通信。以下是配置步骤:

1. 安装并启动Docker

确保系统已安装Docker(CentOS 7+默认仓库包含docker-ce):

sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker 
2. 配置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 
3. 创建Overlay网络

使用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:网络名称(自定义)。
4. 连接容器到Overlay网络

启动容器时,通过--network参数将其连接到Overlay网络:

docker run -d --name my-container --network my-overlay-network nginx 

若容器已在运行,可使用docker network connect命令连接:

docker network connect my-overlay-network existing-container 
5. 验证Overlay网络
  • 查看所有网络,确认Overlay网络已创建:
    docker network ls 
  • 查看网络详细信息(如子网、网关、容器连接状态):
    docker network inspect my-overlay-network 
6. 配置跨主机通信(可选)

若需实现跨主机容器通信,需确保:

  • 所有主机上的Docker守护进程配置了相同的cluster-store(如Consul)和cluster-advertise(主机IP及端口);
  • 主机之间网络互通(防火墙允许VXLAN流量,端口4789/UDP);
  • 示例daemon.json配置(需替换为实际Consul地址):
    { "cluster-store": "consul://consul-host:8500", "cluster-advertise": "your-host-ip:2376" } 
    重启Docker服务使配置生效:
    sudo systemctl restart docker 

以上步骤覆盖了CentOS上Overlay的主要配置场景,可根据实际需求选择对应方案。

0