在做harbor实验时,因为需要导入过多的镜像,而根空间不足。

  • 问题:空间不够

  • 问题描述: Error processing tar file(exit status 1): no space left on device

  • 解决方案:

  • 查询默认路径为 /var/lib/docker由于当初分系统的时候没有考虑足够的空间,因此这个逻辑空间不够。解决思路有两个,其一是扩充 该路径下的空间,其二是采用 更改docker的root path 。 由于前一种方案需要使用 lvextend命令,并在实际扩容的过程中报错 ...: invalid path for logical volume。于是采用第二种方案。以下为详细修改内容。

  • docker root path更改 方案:

第一步:查看 docker 的根目录

docker info | grep -i "docker root dir"

在这里插入图片描述
第二步:查看目录剩余空间

df -hl /var/lib/docker

在这里插入图片描述
可以发现docker的根目录/var/lib/docker是在文件系统/dev/mapper/rhel-root下,所以我们增加一块磁盘,给它创建一个更大空间的根目录。

第三步:增加磁盘,并格式化挂载。

fdisk /dev/sdb

在这里插入图片描述

partprobe
mkfs.xfs /dev/sdb1

在这里插入图片描述

mkdir /harbor
mount /dev/sdb1 /harbor

第四步:创建目标目录

mkdir -p /etc/systemd/system/docker.service.d/

第五步:创建配置文件

vim /etc/systemd/system/docker.service.d/devicemapper.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd  --graph=/harbor

第六步:重启 docker

systemctl daemon-reload
systemctl restart docker

检查docker根目录:

docker info | grep -i "docker root dir"

在这里插入图片描述

导入镜像:
在这里插入图片描述
由于是新建的根目录,因此之前所有的镜像、容器、卷等在新目录中是没有的,所以如果需要则需迁移。

原始根目录迁移方法,点击这里!!!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐