如何迁移docker存储目录

容器与中间件容器服务技术服务知识库
问题描述

在 /var/lib/docker 中存储的都是相关于容器镜像相关的数据,所以不能随便的将其删除掉,随着镜像容器越来越多,遇到磁盘告警,需要其进行扩容或迁移。

问题分析

对/var/lib/docker迁移,只需将数据迁移到较大目录中,将数据目录做软链接(尽量不要用软链, 因为一些docker容器编排系统不支持这样做,比如我们所熟知的K8S),链接到/var/lib/docker或修改docker配置文件,将“data-root”设置为数据目录,这里通过修改data-root字段实现迁移数据目录。

问题解决

1.停止docker

$ systemctl stop docker

2.迁移docker数据

$ mkdir -p /data/lib
$ mv /var/lib/docker /data/lib/
$ ls -l /data/lib/docker/
total 44
drwx--x--x 4 root root 4096 Jun 13 11:33 buildkit
drwx--x--- 2 root root 4096 Jun 13 11:33 containers
drwx------ 3 root root 4096 Jun 13 11:33 image
drwxr-x--- 3 root root 4096 Jun 13 11:33 network
drwx--x--- 3 root root 4096 Jun 13 12:47 overlay2
drwx------ 4 root root 4096 Jun 13 11:33 plugins
drwx------ 2 root root 4096 Jun 13 12:47 runtimes
drwx------ 2 root root 4096 Jun 13 11:33 swarm
drwx------ 2 root root 4096 Jun 13 12:47 tmp
drwx------ 2 root root 4096 Jun 13 11:33 trust
drwx-----x 2 root root 4096 Jun 13 12:47 volumes

3.修改docker配置并启动docker

$ cat /etc/docker/daemon.json 
{
  "data-root": "/data/lib/docker/"
}
$ systemctl start docker

4.验证

$ docker info |grep -i dir
 Docker Root Dir: /data/lib/docker
参考链接

[1] https://docs.docker.com/engine/deprecated/#-g-and---graph-flags-on-dockerd [2] https://docs.docker.com/engine/reference/commandline/dockerd/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务

128
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论