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