Bootstrap

Docker扩容操作(docker总是空间不足)

Docker扩容操作(docker总是空间不足)

1、df二连,一共也就70g,总是占满93%以上。所以需要移动到其他目录上

查看docker镜像和容器存储目录的空间大小

du -sh /var/lib/docker/

2、停止docker服务

systemctl stop docker

3、首先创建目录并迁移

# 首先创建目录
mkdir -p /home/docker_home

4、复制

sudo cp -ar /var/lib/docker /home/docker_home/

-a archive
-v verbose view
-z 压缩

-r 递归

5、重新修改映射路径

vim  /etc/docker/daemon.json

增加下面的

"data-root": "/home/docker_home/docker"

我的示例:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu"
  ],
  "data-root": "/home/docker_home/docker"
}

df -Th

6、重新启动docker

systemctl daemon-reload && systemctl restart docker

7、查看是否正常绑定目录

docker info
docker ps

这个是解释
tip:

如果您想在之前的命令中添加 --progress 选项以显示 rsync 操作的进度,您可以这样修改命令:

( cd /var/lib/docker && find . -type f -print0 | xargs -0 -P4 -I{} rsync -avz --inplace --progress {} /home/docker/lib/; )

这里的 --progress 选项会使得 rsync 在复制文件时显示每个文件的传输进度。这对于大型文件或大量文件的复制操作特别有用,因为它提供了一个直观的反馈,让用户知道复制操作的进度。

完整的命令解释如下:

  • cd /var/lib/docker:切换到 Docker 的数据目录。
  • find . -type f -print0:查找当前目录及子目录下的所有文件,并以 \0 作为分隔符输出,这样处理文件名时可以正确处理包含空格和特殊字符的文件名。
  • |:管道符,将前一个命令的输出作为后一个命令的输入。
  • xargs -0 -P4 -I{}xargs 命令读取来自 find 的输入,并为每个文件执行后面的 rsync 命令。-0 表示输入项是以 \0 分隔的,-P4 表示并行执行,使用4个进程,-I{} 定义了一个替换字符串 {},它在每个 rsync 命令中被替换为当前处理的文件名。
  • rsync -avz --inplace --progress {} /home/docker/lib/:对于 xargs 传递过来的每个文件名 {}rsync 命令将该文件从 /var/lib/docker 复制到 /home/docker/lib/,同时保留文件属性、显示详细输出、在传输过程中压缩数据,并直接在目标位置更新文件。--progress 选项显示每个文件的传输进度。

请注意,rsync--progress 选项可能会稍微降低复制速度,因为它需要额外的时间来计算和显示进度信息。但是,对于大型文件或长时间运行的复制任务,这个选项提供的进度反馈是非常有用的。

参考:

https://blog.csdn.net/qq_41973632/article/details/142464963

;