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
启动服务即可.