我的命令是 podman logs --tail 10 xxxx
然后就眼睁睁看着内存张到100%,然后宕机
我清除了宿主机的日志,但是没有用
sudo rm /var/lib/containers/storage/overlay-containers/<container_id>/userdata/ctr.log
sudo find /var/lib/containers/storage/overlay-containers/ -name "ctr.log" -exec rm {} \;
命令是没有问题的,这个容器运行了很长时间,之前调试 打印日志都没有问题。但是时间长了,不知道是不是容器产生的日志过多,导致了logs 会占满内存。
有解决方案是 删除容器,然后再run一个出来,我不干,run 的一些参数我已经记不得了,或者就是不想删除后再run一个出来。
请问如果一个容器长时间运行,我现在想要初始化到它run 时候的状态,应该如何处理?
(我的容器里面是一个hyperf 的程序,在不停的调用接口 和定时任务,容易产生日志)
podman容器提取run 命令
导出容器配置项
jq 提取run 命令
原理就是:
将这个
json
文件中的第一个数组中的Config
下面的CreateCommand
数组按照空格 拼接成一条语句,就是你的podman run
命令了注意事项:
按照这个步骤提取出来的
run
还有问题,比如其中的
-c
里面的参数是个字符串有引号的,但是通过上面的方法提取出来的是没有引号。你拿着没有引号的run
脚本去执行是要出问题的,会导致容器无法直接使用总结log 导致内存100% 宕机问题
清除日志