podman 存储位置迁移
使用podman容器时,podman会默认使用/var/lib/containers
路径作为存储路径,可能会导致根磁盘空间占用过大。迁移过程
一、关闭所有容器及容器服务
注意在修改前需要关闭所有容器,可以使用Cockpit系统在Web中关闭容器及以下几个服务:
- podman
- podman-restart
- podman-auto-update
- containerd
- 建议关闭所有snap.microk8s开头的服务
二、复制目录
关闭了容器及服务后,就可以把/var/lib/containers
目录移动到有足够空间的地方了。
三、修改配置
podman会根据/etc/containers/storage.conf中的配置来改变podman的存储路径,但是这并不是绝对的,感觉像是BUG一样。
ubuntu系统中/etc/containers下并没有storage.conf文件,需要自己手动创建(如果有则修改)。
内容如下:
[storage]
driver = "overlay"
runroot = "/run/containers/storage"
graphroot = "/var/lib/containers/storage"
上面的配置是podman的默认配置,其中,driver是驱动类型,默认为overlay,需要填写,但是最好不要修改,因为原来的驱动类型就是overlay; graphroot就是podman的存储路径,runroot是运行路径,这些都可以改为自定义的路径。这里主要是修改 graphroot路径。
修改完成后,可以使用sudo podman info命令来查看是否生效:
四、修改数据库
podman在数据库中可能会存储有运行配置,默认是在/var/lib/containers/storage/libpod/bolt_state.db中的,所以如果该数据库中存储了运行配置,则只修改了/etc/containers/storage.conf中的配置是不起作用的,podman会优先使用数据库中存储的配置,这点很坑。所以如果bolt数据库存储了相关配置,那么无论怎么修改/etc/containers/storage.conf
中的配置都会被重载而不起作用。bolt_state.db
又是一种小众的数据库,格式为bolt,不能直接查看和修改,需要使用专门的bolt数据库工具才能查看和修改。
https://github.com/evnix/boltdbweb boltdbweb地址
go install github.com/evnix/boltdbweb
boltdbweb --db-name=test.db(db文件路径) --port=8008
再使用浏览器打开地址 查找buckets 名称为:runtime-config的配置,修改graph root
、static dir
和volume path
配置,也可以直接删除掉,让podman直接使用/etc/containers/storage.conf
中的配置。
/var/lib/containers/storage/libpod/bolt_state.db 数据库文件非常重要,请注意!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」