宝塔面板Docker磁盘空间告急时,应依次执行:一、面板批量删除已停止容器;二、SSH命令清理容器、镜像、缓存;三、清理悬空数据卷与自定义网络;四、手动删除/var/lib/docker等残留目录;五、配置daemon.json启用日志自动轮转。

如果您在宝塔面板中发现Docker模块显示异常,或磁盘空间因容器、镜像持续堆积而告急,则很可能是未及时清理已停止的容器、悬空镜像或残留数据卷所致。以下是针对性释放Docker相关磁盘空间的操作步骤:
一、通过宝塔面板界面批量删除容器
该方法适用于能正常访问面板且容器数量不多的场景,操作直观、风险可控,避免误删正在运行的关键服务。
1、登录宝塔面板,点击左侧菜单栏中的Docker进入管理页面。
2、在容器列表中,勾选所有状态为“已停止”或非当前业务必需的容器。
3、点击列表上方的“批量删除”按钮,在弹出确认框中点击确定。
4、等待操作完成,刷新页面确认容器列表已清空或仅保留必要运行中容器。
二、使用SSH命令行彻底清理容器与镜像
该方式可清除面板界面可能遗漏的隐藏容器、悬空镜像及构建缓存,适用于磁盘占用严重或面板Docker模块显示“未启动/未卸载”的异常状态。
1、通过SSH连接服务器,执行命令停止全部运行中容器:docker stop $(docker ps -q)。
2、删除所有已停止容器:docker rm $(docker ps -aq)。
3、强制删除所有本地镜像(含被引用镜像):docker rmi -f $(docker images -q)。
4、清理构建缓存与悬空对象:docker builder prune -f。
三、清理Docker数据卷与网络资源
数据卷(volume)和自定义网络不会随容器删除而自动移除,长期积累将显著占用/var/lib/docker/volumes等路径空间。
1、列出所有未被任何容器使用的数据卷:docker volume ls -f dangling=true。
2、删除全部悬空数据卷:docker volume prune -f。
3、查看自定义网络列表:docker network ls。
4、删除除默认bridge、host、none外的所有用户创建网络:docker network prune -f。
四、手动清理Docker根目录残留文件
当执行常规清理后磁盘空间仍未释放,说明/var/lib/docker下存在残留文件或损坏数据,需直接清理目录结构。
1、确保Docker服务已完全停止:systemctl stop docker。
2、删除Docker主数据目录(含容器层、镜像层、卷数据):rm -rf /var/lib/docker。
3、同步删除containerd运行时数据(如存在):rm -rf /var/lib/containerd。
4、清除Docker配置目录(不影响系统其他服务):rm -rf /etc/docker。
五、启用Docker自动磁盘清理策略
防止未来再次因日志或临时对象膨胀导致空间耗尽,可通过配置Docker守护进程启用内置清理机制。
1、编辑Docker配置文件:vi /etc/docker/daemon.json。
2、添加以下内容(若文件不存在则新建):{"log-driver":"local","log-opts":{"max-size":"10m","max-file":"3"}}。
3、重启Docker服务使配置生效:systemctl restart docker。
4、验证日志驱动是否更新:docker info | grep "Logging Driver"。










