Docker目录乾坤大挪移,拯救你的NAS系统存储空间!
Docker目录乾坤大挪移,拯救你的NAS系统存储空间!
JonyLee之前给大家推荐过玩客云的Armbian刷机固件,大家在使用玩客云这类盒子设备的时候,通常都会遇到一个问题。
就是这类设备一般都是板载内存和emmc存储,而板载存储都不会太大,一般都是标称8GB实际7GB多,装完Armbian系统之后,剩余的存储空间只有6GB多了。
然后我们还想要玩Docker,下载docker镜像创建容器,有些docker镜像本身都比较大,不少都超过1GB了,而Docker默认是存储在系统目录/var/lib/docker
下的,这样装不了几个镜像系统空间就满了。
所以针对这类盒子设备内置存储不足的问题,将Docker迁移至外接USB存储设备(U盘/移动硬盘)是高效扩容的核心方案。这样就可以将内置存储空出来,专门用于后续安装系统运行必要的程序。
那么具体如何操作呢?这里分两种情况,一种是没安装过Docker,另一种是已经安装过Docker并且有容器正在运行了。
以下分全新安装Docker和迁移已有Docker环境两种情况详细说明操作步骤:
一、准备工作
首先需要连接并挂载外置存储,将U盘或移动硬盘设备插入玩客云USB,使用 lsblk
确认设备标识(如 /dev/sda1
)。
格式化并挂载(以ext4为例):
1 | sudo mkfs.ext4 /dev/sda1 # 格式化 |
- 安装Docker:
1 | sudo apt update |
- 验证安装:
1 | sudo docker info | grep "Root Dir" # 检查存储路径是否为外置位置 |
三、已安装Docker:迁移至外置存储
⚠️ 迁移步骤(无损数据)
- 停止Docker服务:
1 | sudo systemctl stop docker |
- 确认Docker路径已经变更成功服务正常运行,可以手动删除
/var/lib/docker.bak
备份文件夹。
1 | # 仅删除原始数据(保留符号链接本身) |
💡 注意事项
路径权限问题:
需要确保外置存储的挂载目录权限为755
,所属用户/组为root:root
(Docker默认要求)。迁移前清理Docker:
可以使用命令:docker system prune -a --volumes -f
清理未使用的Docker镜像和无用的数据,
其中的参数说明:
-a
:删除所有未使用的镜像--volumes
:包含未使用的数据卷-f
:强制删除,跳过确认提示
该命令作用范围包括:所有停止的容器、未被任何容器引用的镜像、未使用的数据卷、闲置网络、构建缓存。
⚠️ 注意:此命令会彻底删除未关联的资源,操作前建议确认无重要数据残留。
如果你有安装1panel面板,可以直接在面板的容器
管理里可视化清理,界面见下图,其中容器、镜像、网络、存储卷页面都有清理选项,可以确认是否有用,再有选择的清理,这样更直观和稳妥。
好了,通过以上操作,基本上可以将Docker这个系统存储占用大头给解放出来了,操作完成之后可以再使用命令df -hT
看下你的内置系统存储,是不是空出来不少了?
看我这Docker使用了8.2GB,如果放系统存储里,光Docker都放不下,哈哈。