在CentOS上使用容器技术时,挂载主要涉及Docker和Kubernetes两种场景,以下是核心方法及要点:
命令行方式
使用-v
或--mount
参数将宿主机目录挂载到容器指定路径,支持绑定挂载和命名卷:
# 绑定挂载(直接映射宿主机目录)
docker run -v /宿主机路径:/容器路径 镜像名
# 命名卷(由Docker管理存储)
docker run -v 卷名:/容器路径 镜像名
示例:将宿主机/data
目录挂载到容器/app/data
,并设置为只读:
docker run -v /data:/app/data:ro nginx
注意事项
:ro
参数指定只读,防止容器内修改宿主机文件。--volumes-from
挂载其数据卷:# 创建数据卷容器
docker run -v /shared-data:/data --name data-container centos
# 其他容器挂载该数据卷
docker run --volumes-from data-container --name app-container 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
accessModes: ReadWriteMany
)。volumes:
- name: nfs-vol
persistentVolumeClaim:
claimName: nfs-pvc
volumeMounts:
- name: nfs-vol
mountPath: /容器路径
优势:支持跨节点Pod共享数据,Pod删除后数据保留。
权限问题
chmod 777
),避免容器无法访问。:ro
或:rw
指定读写权限。启动顺序
systemd
配置依赖关系,确保挂载完成后再启动容器。数据持久化
参考资料: