docker更换默认存储目录、默认存储目录磁盘剩余空间不足,采用软连、换目录、加容量解决

2022-11-21 20:43:46 浏览数 (1)

操作之前先停止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"

0 人点赞