date: 2020-05-17title: docker修改根目录 #标题
tags: docker修改根目录 #标签
categories: docker # 分类

一般docker默认安装后根目录为/var/lib/docker,但可能var目录的磁盘空间并不是很大,随着业务的运行,docker的根目录也越来越大(因为根目录里存放了镜像、日志、网络配置等等。所有docker的核心内容都存储于根目录。)

这篇博文用于记录如何更改docker的根目录。
我这里打算将docker的根目录迁移到/data/lib/docker目录。

同步docker根目录数据到新目录

  1. [root@harbor ~]# systemctl stop docker # 停止docker服务
  2. [root@harbor ~]# rsync -avz /var/lib/docker/ /data/lib/docker/ # 同步数据
  3. [root@harbor ~]# ll /data/lib/docker/ # 确认同步后的数据
  4. 总用量 0
  5. drwx------ 2 root root 24 4 18 19:23 builder
  6. drwx------ 4 root root 92 4 18 19:23 buildkit
  7. drwx------ 3 root root 20 4 18 19:23 containerd
  8. drwx------ 2 root root 6 4 18 19:23 containers
  9. drwx------ 3 root root 22 4 18 19:23 image
  10. drwxr-x--- 3 root root 19 4 18 19:23 network
  11. drwx------ 4 root root 112 4 18 19:49 overlay2
  12. drwx------ 4 root root 32 4 18 19:23 plugins
  13. drwx------ 2 root root 6 4 18 19:49 runtimes
  14. drwx------ 2 root root 6 4 18 19:23 swarm
  15. drwx------ 2 root root 6 4 18 19:49 tmp
  16. drwx------ 2 root root 6 4 18 19:23 trust
  17. drwx------ 2 root root 25 4 18 19:23 volumes

创建docker配置文件

  1. [root@harbor ~]# mkdir -pv /etc/systemd/system/docker.service.d
  2. [root@harbor ~]# vim /etc/systemd/system/docker.service.d/devicemapper.conf # 写入以下内容
  3. [Service]
  4. ExecStart=
  5. ExecStart=/usr/bin/dockerd --graph=/data/lib/docker

重启docker,确定docker根目录被修改

  1. [root@harbor ~]# systemctl daemon-reload
  2. [root@harbor ~]# systemctl restart docker
  3. [root@harbor ~]# docker info | grep "Dir" # 确认目录已更改
  4. Docker Root Dir: /data/lib/docker
  5. [root@harbor ~]# docker images # docker的镜像还在
  6. REPOSITORY TAG IMAGE ID CREATED SIZE
  7. busybox latest be5888e67be6 3 days ago 1.22MB
  8. [root@harbor ~]# rm -rf /var/lib/docker/ # 删除原根目录

迁移完成!!!