当前位置: 首页 > news >正文

复制docker根目录遇到的权限问题

环境

ubuntu20.04, 普通用户使用sudo权限。

需求

linux系统上,默认的docker跟目录在/var/lib/docker目录下,但是根分区太小。想要将docker根目录挪到其它磁盘,防止以后镜像和容器增加后磁盘满了。

操作

先停止所有docker容器,然后停止docker服务:

systemctl stop docker

然后将/var/lib/docker复制到目标路径下

sudo cp /var/lib/docker ./

修改/etc/docker/daemon.json, 配置新的根目录:

{"data-root": "/mnt/data/docker"
}

然后重启docker 服务:

systemctl start docker

最后启动docker业务容器。

报错

启动mysql服务失败,查看报错信息:

Entrypoint] MySQL Docker Image 8.0.25-1.2.3-server
[Entrypoint] Starting MySQL 8.0.25-1.2.3-server
2025-07-21T10:08:15.192097Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.25) starting as process 1
2025-07-21T10:08:15.213123Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
mysqld: Can't create/write to file '/tmp/ibUi25Ct' (OS errno 13 - Permission denied)
2025-07-21T10:08:15.282413Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create temporary file; errno: 13
2025-07-21T10:08:15.282588Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2025-07-21T10:08:15.282799Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2025-07-21T10:08:15.283226Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2025-07-21T10:08:15.283609Z 0 [ERROR] [MY-010119] [Server] Aborting

错误分析

主要是权限问题。猜测是docker跟目录中的某些目录权限被改变了。

解决办法

复制的时候加-a,保留目录权限

sudo cp /var/lib/docker ./  -a

使用nfs目录存储docker根目录的问题

将docker根目录复制到nfs目录报错

使用nfs挂载了一个远程的磁盘,希望将docker根目录复制进去节省本地磁盘,结果出错了:

$ sudo cp /var/lib/docker/ ./test_docker -rf
[sudo] password for xxx: 
cp: cannot create special file './test_docker/docker/volumes/backingFsBlockDev': Unknown error 524

使用nfs分区新建新的根分区

如果不拷贝老的根分区目录,直接在/etc/docker/daemon.json修改data-root指向nfs分区中的目录。docker服务启动起来了,但是docker load -i加载镜像非常慢,一个小时都没加载完一个镜像。

总结

使用nfs分区存储docker根目录有问题,无论是否是新建的。应该优先将docker根目录放物理磁盘上。

http://www.xdnf.cn/news/1162279.html

相关文章:

  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(二)
  • docker磁盘空间不足解决办法
  • MongoDB 查询时区问题
  • linux定时器使用
  • 3、Spring AI_DeepSeek模型-多轮对话
  • 江苏思必驰科技25Java实习面经
  • HTTP,HTTPS
  • 服务器系统时间不准确怎么办?
  • 图论基本算法
  • 部署Zabbix企业级分布式监控
  • 【Unity基础】Unity中2D和3D项目开发流程对比
  • Unity 插件Resize Pro 最快的 Texture2D 调整大小工具
  • Elasticsearch 是 NVIDIA Enterprise AI Factory 验证设计中推荐的向量数据库
  • 数据结构堆的实现(C语言)
  • Web3.0 能为你带来哪些实质性的 改变与突破
  • Vue 脚手架——render函数
  • 【算法笔记】树状数组
  • Linux学习之Linux系统权限
  • 《C++》函数内联,auto关键字
  • 用基础模型构建应用(第十章)AI Engineering: Building Applications with Foundation Models学习笔记
  • 探索无广告音乐世界:MusicFree 免费播放器
  • 海康威视视觉算法岗位30问及详解
  • BERT 的“池化策略”
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页布局实现
  • Three.js 立方体贴图(CubeMap)完全指南:从加载到应用
  • 大模型高效适配:软提示调优 Prompt Tuning
  • Python高效入门指南
  • 深入详解随机森林在放射治疗计划优化中的应用及实现细节
  • 部署 Zabbix 企业级分布式监控
  • Levels checking (filtering) in logging module