《企业级Docker容器运维实战:Docker数据目录迁移》

一时失言乱红尘 2022-11-11 13:22 280阅读 0赞

文章目录

  • 一、场景介绍
  • 二、方案介绍
  • 三、方案实施
  • 总结:整理不易,如果对你有帮助,可否点赞关注一下?

一、场景介绍

通过告警信息发现根目录磁盘空间告警,排查得知docker数据目录占用了根目录空间导致,现阶段需要将docker数据目录迁移到另外一块更大的磁盘。


二、方案介绍

将原有的docker目录拷贝到另外一块更大磁盘空间目录下,建议使用mv或rsync命令,cp会丢失权限信息,可能会导致意想不到的bug。

注意:
1、如果使用了cp命令,先不要删除旧的docker数据目录,复制容器目录数据的时候一定要带arp参数,否则会发现容器起不来。

2、如果cp的时候没有带参数,又不小心删除了旧的docker数据目录,会发现重启docker后容器起不来,如果是生产环境问题就大了,需要删除旧的镜像和容器,重新导入镜像和构建容器。如果是数据库这样的容器就问题真的非常严重了。

3、对于生产环境docker数据目录迁移,如果之前没有这方面的经验,一定要先在测试环境或本地环境验证,不要直接在生产环境开干,一旦出错就会变成灾难性的生产事故了。


三、方案实施

  1. #1、关闭docker服务
  2. systemctl stop docker
  3. #2、迁移docker数据目录
  4. # 方法一:
  5. cp -arp /opt/docker /data/basic-data
  6. #方法二:
  7. mv /opt/docker /data/basic-data
  8. #方法三:
  9. yum install rsync -y
  10. rsync -avz /opt/docker /data/basic-data
  11. #3、修改docker数据目录
  12. vim /etc/docker/daemon.json
  13. {
  14. "registry-mirrors": ["https://registry.docker-cn.com"],
  15. "bip": "172.17.0.1/24",
  16. "storage-driver": "overlay2",
  17. "graph": "/data/basic-data/docker",
  18. "log-driver": "json-file",
  19. "log-opts": {
  20. "max-size": "10m",
  21. "max-file": "3"
  22. }
  23. }
  24. #说明:docker数据目录修改可以根据实际环境修改。
  25. #4、启动docker服务
  26. systemctl start docker

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Docker容器故障实战篇

发表评论

表情:
评论列表 (有 0 条评论,280人围观)

还没有评论,来说两句吧...

相关阅读

    相关 docker容器目录迁移

    docker默认的存储路径在/var/lib/docker/中。我们在使用了一段时间后,通过`df -h` 发现这个目录占用的比较多,于是想单独的一个数据磁盘去挂载这个内容,以