操作之前先停止docker服务
代码语言:javascript复制systemctl stop docker
以下方法选其中之一
直接切换目录
建议直接使用此方式,或者在docker安装好后,就更改主目录
生产中请注意一定要先备份一份
代码语言:javascript复制# 创建一个root目录以外分区的目录
mkdir /home/lib/docker -p
# 迁移数据,路径末尾要加"/"
rsync -avz /var/lib/docker/ /home/lib/docker/
修改docker服务文件
代码语言:javascript复制vim /usr/lib/systemd/system/docker.service
# 在ExectStart=/usr/bin/dockerd的后面增加--graph /home/lib/docker
或者修改daemon.json,和修改docker服务文件选一即可
代码语言:javascript复制vim /etc/docker/daemon.json
{
"graph": "/home/lib/docker"
}
创建软链接目录
生产中请注意一定要先备份一份
代码语言:javascript复制# 创建一个root目录以外分区的目录
mkdir /home/lib/docker -p
# 将数据放到新的存放路径,路径末尾要加"/"
rsync -avz /var/lib/docker/ /home/lib/docker/
# 备份数据,mv还有一个目的是,创建软链接的目录必须不存在
mv /var/lib/docker /tmp/docker_bak
# 创建软链接
ln -s /home/lib/docker /var/lib/docker
当你使用docker pull拉取镜像后,可以通过df -h,查看分区使用情况,会发现/home的Used明显增加
LVM增加容量
适用于硬盘分区为LVM方式,不建议使用此方式。如果是xfs文件系统,还需要将分区格式化,数据即使有备份,也是有误操作的风险的。慎用!!!
代码语言:javascript复制# 找一个容量大,且可以被减少容量的分区,这里就以/home为例
xfs文件系统支持扩大容量
ext2/ext3/ext4文件系统支持增大或者减小
# centos默认使用xfs文件系统
df -hT | grep "/dev/sda" | awk '{print $2}'
xfs_growfs /dev/mapper/centos-home
# 酌情调整大小
lvreduce -L -5G /dev/mapper/centos-home
lvextend -L 5G /dev/mapper/centos-root
# 应用调整,这里确实也是减少了。我不太能搞懂,所以此方法不建议
xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root
重新加载配置文件
代码语言:javascript复制systemctl daemon-reload
systemctl restart docker
检查docker信息
代码语言:javascript复制docker info | grep "Dir"