修改Docker的默认存储位置

docker的默认存储位置在/var/lib/docker,占用的是系统分区,有些时候我们的系统分区并不会分配太多的空间,随着镜像越来越多,很容易导致系统分区不够用,因此我们需要修改一下docker的默认存储位置,如本文中专门的数据分区/data.

修改存储位置有两种方案,一种是配置不变,将原存储位置改成软连接,另一种就是直接改存储位置.以下两种方案都会介绍.

准备工作

不论存储位置是否修改过,都建议使用如下命令查看一下,做到心中有数.

> docker info | grep "Docker Root Dir"
Docker Root Dir: /var/lib/docker

停止服务,转移数据

因为要把原位置的数据转移到新位置,否则改完数据后,之前的镜像就找不到了,Ubuntu下停止服务命令service docker stop,其他系统,大家根据自己的情况操作.

我准备存储数据的位置是/data/docker,转移数据sudo mv /var/lib/docker /data/docker

修改存储位置

与创建软连接二选一

修改存储位置有两种方法

一个是过时的方式,修改/usr/lib/systemd/system/docker.service文件,在ExecStart 追加 --graph /data/docker,修改完的这行是这样ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock,新版本(1.12以上)docker也支持这种方式,但是建议使用第二种方式.

另一种方法是在/etc/docker/daemon.json中增加配置"data-root": "/data/docker",或者"graph": "/data/docker",修改后的文件如下:

{
  //你的其他配置
  "data-root": "/data/docker"
}

重新启动服务即可.

创建软连接

与修改存储位置二选一

创建软连接ln -sf /data/docker /var/lib/docker

启动服务即可.