虚拟机ubuntu中磁盘满了 + 镜像损坏,如何解决

目标:磁盘空间释放、坏镜像删掉、容器正常启动

报错:

复制代码
$ podman rmi -f 82cfc386c1bcbc6c12de84a888ab36a6716b5ce8c4338b01561a52a22d1e0d49
Error: 2 errors occurred:
	* write /home/taskmanager/.local/share/containers/storage/overlay-containers/.tmp-containers.json2603214207: no space left on device
	* write /home/taskmanager/.local/share/containers/storage/overlay-layers/.tmp-layers.json736780310: no space left on device

核心问题:磁盘彻底写满了,连执行删除命令的临时空间都没有,所以删镜像也报错,优先级:先

清空间 → 再删垃圾 → 最后操作容器镜像

先清空间

复制代码
​
# 1. 紧急清理系统最大的垃圾:日志文件,瞬间释放几G空间
sudo journalctl --vacuum-size=100M

# 2. 清理用户目录缓存+临时文件,释放/home空间(你的报错目录)
rm -rf ~/.cache/* && rm -rf /tmp/*

# 3. 强制清空Podman/Docker所有缓存+垃圾,不询问直接删
podman system prune -a -f --volumes

​

删那个损坏镜像

复制代码
podman rmi -f 82cfc386c1bcbc6c12de84a888ab36a6716b5ce8c4338b01561a52a22d1e0d49

重启项目容器

复制代码
podman rm -f task-manager
podman run -d --name task-manager -p 6006:6006 localhost/task-manager-backup:latest gunicorn -w4 -b0.0.0.0:6006 app:app

验证是否全部恢复正常

复制代码
podman images
podman ps

Podman 与 Docker 的无缝切换

当前是Podman模拟Docker,两者99% 的命令完全一致,不需要做任何修改,日常使用:

  1. 所有docker xxx命令,比如docker ps/run/rm/pull/save/load 都可以正常敲,执行的是 Podman;
  2. Podman 比 Docker 更轻量、无守护进程,对 python 项目 / 后端服务更友好,无需替换为原生 Docker
  3. 唯一区别:Podman 的容器存储路径和 Docker 不同,但使用无感知,不用管。

可选:安装原生 Docker(如果想彻底替换 Podman)

如果强迫症想装原生 Docker,执行下面的命令一键安装(Ubuntu/Debian 通用),安装后 Podman 的软链接会被覆盖,docker xxx就是原生 Docker 了:

复制代码
sudo apt-get update && sudo apt-get install docker.io docker-compose -y
sudo systemctl start docker && sudo systemctl enable docker
sudo usermod -aG docker $USER

执行完后注销重新登录,即可免 sudo 执行 docker 命令。

相关推荐
黄昏晓x1 天前
Linux----缓冲区
linux·运维·服务器
2501_901147831 天前
学习笔记:单调递增数字求解的迭代优化与工程实践
linux·服务器·笔记·学习·算法
似霰1 天前
Linux timerfd 的基本使用
android·linux·c++
2501_924878731 天前
AdAgent 能力成熟度模型:从 L1 自动化到 L5 自主增长引擎
运维·自动化
寄存器漫游者1 天前
Linux 软件编程 命令、内核与 Shell
linux·运维·服务器
Kaede61 天前
服务器硬件防火墙和软件防火墙的区别
运维·服务器
qinyia1 天前
通过本地构建解决Cartographer编译中absl依赖缺失问题
linux·运维·服务器·mysql·ubuntu
郝亚军1 天前
ubuntu启一个udp server,由一个client访问
linux·ubuntu·udp
苦逼IT运维1 天前
从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)
linux·学习·docker·容器·kubernetes
萧曵 丶1 天前
Docker 面试题
运维·docker·容器