• 【arm扩容】docker load -i tar包 空间不足


    背景:

    首先我在/home/nvidia/work下导入了一些镜像源码tar包。然后逐个load进去。当我 load -i dev-aarch64-18.04-20210423_2000.tar包的时候,出现

    Error processing tar file(exit status 1): write /9818cf5a7cbd5a828600d9a4d4e62185a7067e2a6f2ee5629e404ed903f0f511/layer.tar: no space left on device

    所以在我挂载好500G的盘之后,还是出现了空间不够的情况。

    排查问题:

    我在load之前和load之后的df -h情况如下

    很明显,load进去的镜像存储到了/dev/mmcblk0p1里,而不是/dev/nvme0n1p1里

    这是docker配置的问题


    Docker 服务文件

    /lib/systemd/system/docker.service

    df -h 路径  //可以查看该路径挂在哪个盘,和该盘有多少可用空间

    创建新的 Docker 数据目录

    sudo mkdir /home/nvidia/work/DockerImagesLoad

    编辑 Docker 服务文件:打开 /lib/systemd/system/docker.service 文件进行编辑。

    sudo vim /lib/systemd/system/docker.service

    修改 ExecStart 行:找到包含 ExecStart 的行,并修改 --data-root 参数以指向新创建的 DockerImagesLoad 目录。

    ExecStart=/usr/bin/dockerd --data-root=/home/nvidia/work/DockerImagesLoad -H fd:// --containerd=/run/containerd/containerd.sock

    保存并关闭文件:保存您的更改并关闭编辑器。

    重新加载 systemd 配置并重启 Docker 服务

    1. sudo systemctl daemon-reload
    2. sudo systemctl restart docker

    验证更改:确认 Docker 是否正在使用新的数据目录,并检查该目录所在分区的空间情况。

    df -h /home/nvidia/work/DockerImagesLoad

    接下来,使用 docker load 命令加载 Docker 镜像文件了。


    实际情况是:

    docker.service文件之后,sudo docker images 就看不到任何东西了

    这是正常现象,但是之前的镜像把老盘内存还是占用了

    所以要清空老盘数据,把老盘内存释放出来

    接着把docker.service文件改回去

     又可以看到镜像了

    【不建议这样做】 先不着急删除镜像,我要先把这些已下载的镜像移到新的地方去,也就是/home/nvidia/work/DockerImagesLoad/

    sudo rsync -ah --progress /media/nvidia/d178aa96-a44b-44a2-ad85-d2626e1e134a1/datadd/docker/ /home/nvidia/work/DockerImagesLoad/

    【建议】最好还是用docker通用的方式删除镜像

     我们用 df -h 可以看到空间被释放出来了

     然后再修改docker.service文件

    然后再重新加载 systemd 配置sudo systemctl daemon-reload 并重启 Docker 服务 sudo systemctl restart docker

    然后再一条条 sudo docker load -i 镜像。

    最后sudo reboot重启

    重启后验证

    全部正常,至此,已解决

  • 相关阅读:
    JVM是什么?Java程序为啥需要运行在JVM中?
    虚树 (模板)
    【游戏逆向】逆向基础之OD和CE结合找数据
    抖音小程序开发教学系列(7)- 抖音小程序的发布与运营
    GBase 8s CLOSE 语句
    注解方式优雅的实现 Redisson 分布式锁
    从行车记录仪恢复已删除/丢失视频的方法
    开发《俄罗斯方块》的意义
    PHP代码审计入门-DVWA靶场命令注入篇
    利用navicat定时传输数据到另一个库
  • 原文地址:https://blog.csdn.net/m0_74633496/article/details/139811743