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

【docker系】docker安装数据迁移

由于原有之前运维安装docker没有指定docker安装数据到指定目录(挂载的数据盘),导致系统盘磁盘占用接近占满,为了后续系统应用正常运行,现在docker默认安装数据肯定需要做迁移。

准备工作

1.做好对应的数据盘挂载

df -h /home/data

# 输出示例:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sdb        100G   10G   90G  10% /home/data

2.备份 Docker 数据(重要!)

sudo systemctl stop docker          # 停止 Docker
sudo cp -r /var/lib/docker /home/data/docker_backup  # 备份到新数据盘

迁移 Docker 数据到新目录

临时修改 YUM 缓存目录

如果系统磁盘满了,无法通过yum安装rsync 可 ​临时修改 YUM 缓存路径

# 创建新缓存目录(确保有足够空间)
sudo mkdir -p /home/data/yum-cache

# 修改 YUM 配置
sudo sed -i 's|^cachedir=.*|cachedir=/home/data/yum-cache|' /etc/yum.conf

# 安装 rsync
sudo yum install rsync

# 停止 Docker
sudo systemctl stop docker

# 迁移数据到新目录
sudo yum install -y rsync 

# 迁移数据到新目录
sudo rsync -av /var/lib/docker/ /home/data/docker/

修改 Docker 存储路径

# 设置docker数据目录权限
sudo chmod 711  /home/data/docker

修改 Docker 配置文件

编辑vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --graph /home/data/docker -H fd:// --containerd=/run/containerd/containerd.sock

这里注意--graph /home/data/docker 不能有多个空格,否则会识别不到目录

查看docker启动日志

sudo journalctl -u docker --no-pager -n 100
 SELinux/AppArmor 权限问题
  • SELinux(CentOS/RHEL)​
    sudo semanage fcontext -a -t container_var_lib_t "/home/data/docker(/.*)?"
    sudo restorecon -Rv /home/data/docker

这里提示我们使用--data-root,--graph 这个已经过期了。

我们修改下配置

编辑vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --data-root /home/data/docker -H fd:// --containerd=/run/containerd/containerd.sock

重启 Docker 生效

sudo systemctl daemon-reload
sudo systemctl start docker

查看配置数据目录是否生效

sudo systemctl cat docker | grep "ExecStart"

# 查看docker容器是否挂载目录是/home/data开头的目录
docker ps -a 

清理旧数据(确认迁移成功后操作)​

sudo rm -rf /var/lib/docker

相关文章:

  • 【含文档+PPT+源码】基于Django框架的乡村绿色农产品交易平台的设计与实现
  • 论文分享:PL-ALF框架实现无人机低纹理环境自主飞行
  • KICK第五课:Mac 系统下安装 Xcode 或 Clang
  • BGP路由聚合
  • 开发小运维-搭建rocketmq集群
  • OpenWebUI项目调研对比
  • Windows远程桌面黑屏怎么办?
  • 如何限制非法的WIFI连接操作以及网络端口使用?
  • 【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中
  • 六十天前端强化训练之第十六天JSX语法深度解析与应用实践指南
  • 笔记:基于springboot+ShardingSphere-jdbc5.0.0的分库分表(偏yml配置)
  • 24.pocsuite3:开源的远程漏洞测试框架
  • X86 RouterOS 7.18 设置笔记六:端口映射(IPv4、IPv6)及回流问题
  • 高级java每日一道面试题-2025年2月25日-框架篇[Mybatis篇]-Mybatis是如何进行分页的?分页插件的原理是什么?
  • RK3588 Linux实例应用(4)——KEY(设备介绍与设备树介绍)
  • 玩转python:通俗易懂掌握高级数据结构:collections模块之defaultdict
  • Vue 项目中 CDN 引入的利弊及解决方案
  • ASP.NET MVC-构建服务层+注入服务
  • GC 频率和触发条件
  • Unity光线追踪移动端降级适配技术指南
  • 匈牙利史专家阚思静逝世,享年87岁
  • 印控克什米尔地区再次传出爆炸声
  • 当创业热土遇上年轻气息,上海南汇新城发展如何再发力?
  • 中美经贸高层会谈在瑞士日内瓦开始举行
  • 印方称所有敌对行动均得到反击和回应,不会升级冲突
  • 时代中国控股:前4个月销售额18.1亿元,境外债重组协议押后聆讯至5月底