1、数据卷挂载失败

# 查看卷挂载配置

docker inspect --format '{{json .Mounts}}' <容器ID> | jq .

# 检查数据卷是否存在

docker volume inspect <卷名称>

# 检查宿主目录权限

ls -ld <宿主目录>

chown -R <用户ID>:<组ID> <宿主目录>  # 与容器内用户匹配

# 检查挂载模式冲突

# 确保不是同时挂载同一目录到多个容器的读写模式

# 临时禁用SELINUX上下文检查

docker run -v <宿主目录>:<容器目录>:z <镜像名>  # 添加:z标记

2、 数据卷损坏或丢失

# 查看数据卷存储路径

docker volume inspect --format '{{.Mountpoint}}' <卷名称>

# 检查数据卷文件系统

ls -l <卷的挂载点>

df -h <卷的挂载点>

fsck <卷的设备路径>  # 谨慎操作

# 从备份恢复数据卷

docker volume create <新卷名称>

cp -r /backup/<卷备份>/* <新卷的挂载点>/

chown -R root:root <新卷的挂载点>  # 根据需要调整权限

# 更换容器使用的卷

docker stop <容器ID>

# 修改启动命令使用新卷

docker run -v <新卷名称>:<容器目录> ...

3、存储容量不足

# 查看Docker存储使用情况

docker system df

# 查看数据卷占用空间

docker volume ls -q | xargs -I {} docker volume inspect --format '{{.Name}} {{.Mountpoint}}' {} | while read -r name path; do du -sh $path; echo "Volume: $name"; done

# 清理未使用的数据卷

docker volume prune -f

# ext4文件系统扩展存储(LVM示例)

lvextend -L +10G /dev/docker/vg_data

resize2fs /dev/docker/vg_data

更多推荐