- Published on
修改Docker默认的数据目录(Docker迁移卷)
- Authors
- Name
- Pumpkinor
最近在线上使用的 docker
主机发现根目录容量快满了,一番查找,发现是 docker
的 data
文件过大了。
默认情况下,docker
镜像的默认存储路径是/var/lib/docker
,这相当于直接挂载根目录下,然而如果在安装系统时选择了自动分区,根分区一般不会分太大,CentOS
会默认分 50G
。
CentOS
在安装时如果选择默认分区,会把最大存储空间分给 home
,此处也可另外挂载一块磁盘,把新的 docker
目录建在新磁盘上面。
后面的修改皆以将docker
数据迁移到 mkdir /home/docker
目录为例
创建新的 docker
目录 mkdir /home/docker
如果已经有镜像已经加载,已经有容器正在运行,请先停了 docker
服务,并把数据迁移到新目录中
修改 docker
的默认路径,有三种方法
1、修改 docker.service
vim /usr/lib/systemd/system/docker.service
#在里面的EXECStart的后面增加 --graph /home/docker:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /home/docker
#保存退出后执行以下命令
systemctl enable docker
systemctl daemon-reload
systemctl restart docker
2、编辑配置文件/etc/docker/daemon.json
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
# 添加 "data-root": "/home/docker",
"data-root": "/home/docker",
"log-driver":"json-file",
"log-opts": {"max-size":"100m"}
}
#保存退出后
#重启docker应用
systemctl restart docker
3、使用软链接
使用软链接需要先把/var/lib
下的 docker
目录删除,删除之前记得迁移数据
然后用下面命令创建软链接
ln -s /home/docker /var/lib
#重启docker
systemctl restart docker