温馨提示×

centos挂载的容器技术

小樊
54
2025-08-10 15:58:46
栏目: 智能运维

在CentOS上使用容器技术时,挂载主要涉及Docker和Kubernetes两种场景,以下是核心方法及要点:

一、Docker挂载技术

1. 宿主机目录挂载到容器

  • 命令行方式
    使用-v--mount参数将宿主机目录挂载到容器指定路径,支持绑定挂载命名卷

    # 绑定挂载(直接映射宿主机目录)
    docker run -v /宿主机路径:/容器路径 镜像名
    
    # 命名卷(由Docker管理存储)
    docker run -v 卷名:/容器路径 镜像名
    

    示例:将宿主机/data目录挂载到容器/app/data,并设置为只读:

    docker run -v /data:/app/data:ro nginx
    
  • 注意事项

    • 避免直接挂载单个文件(可能导致更新不同步),优先挂载目录。
    • 可通过:ro参数指定只读,防止容器内修改宿主机文件。

2. 数据卷容器共享

  • 创建一个专门用于存储的容器,其他容器通过--volumes-from挂载其数据卷:
    # 创建数据卷容器
    docker run -v /shared-data:/data --name data-container centos
    
    # 其他容器挂载该数据卷
    docker run --volumes-from data-container --name app-container centos
    

二、Kubernetes挂载技术

1. NFS存储挂载(跨节点共享)

  • 步骤

    1. 安装NFS服务(CentOS):
      sudo yum install nfs-utils
      sudo mkdir -p /mnt/nfs
      sudo echo "/mnt/nfs *(rw,sync,no_subtree_check)" >> /etc/exports
      sudo systemctl start nfs-server
      sudo exportfs -a
      
    2. Kubernetes中创建PV和PVC
      • PV(存储资源):定义NFS路径和访问模式(如accessModes: ReadWriteMany)。
      • PVC(存储申请):声明所需存储大小,绑定到PV。
    3. Pod中挂载PVC
      volumes:
      - name: nfs-vol
        persistentVolumeClaim:
          claimName: nfs-pvc
      volumeMounts:
      - name: nfs-vol
        mountPath: /容器路径
      
  • 优势:支持跨节点Pod共享数据,Pod删除后数据保留。

2. 其他存储卷类型

  • EmptyDir:临时存储,Pod删除后数据清除,适用于缓存。
  • HostPath:挂载宿主机目录,仅适用于单节点测试,无法跨节点。

三、关键注意事项

  1. 权限问题

    • 确保宿主机目录权限正确(如chmod 777),避免容器无法访问。
    • 挂载时可通过:ro:rw指定读写权限。
  2. 启动顺序

    • 若依赖远程存储(如NFS),需通过systemd配置依赖关系,确保挂载完成后再启动容器。
  3. 数据持久化

    • 优先使用命名卷、NFS或云存储,避免容器重启后数据丢失。

参考资料:

0