docker容器core文件占用空间太大and同步容器本机时间

docker容器core占用空间太大

发现docker占用了很大的空间,进入容器后发现很多比较大的core加数字文件。
一、直接删除core文件
进入到/var/lib/docker/overlay2/**/merged,可以看到有很多core.文件。Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。
进入到大文件内,删除core,具体如下:
查看使用情况

df -hl

进入容器后可以直接删除core文件

rm -if core.*

删除之后查看

df -hl

二、禁用核心转储,启动容器加参数,不产生core文件

--ulimit core=0

其他关闭core方法:
docker启动后,通过ulimit -a命令查看core文件未关闭
在这里插入图片描述
方法一:使用ulimit -c 0命令关闭
(这种方式本人用了感觉没有效果)
在这里插入图片描述
方法二:在docker启动命令参数中增加–ulimit core=0

例如:docker run -dit --name test --ulimit core=0 -v /dev/hugepages:/dev/hugepages --net=host --cpuset-cpus=“1,2,3” --memory=“12g” --privileged IMAGE ID值

除了core还有日志可能有大文件

  1. 删除大的 log 文件
sudo find /var/lib/docker/containers -name *.log
cat /dev/null > /var/lib/docker/containers/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa/374aa0ba92b37d829012282ff15c1bb838d95dedb54589874c4285991be2d4aa-json.log

控制 log 容量的命令

运行时控制

  1. 启动容器时,我们可以通过参数来控制日志的文件个数和单个文件的大小
docker run -it --log-opt max-size=10m --log-opt max-file=3 redis
  1. 全局配置

创建或修改文件/etc/docker/daemon.json,并增加以下配置

{
“log-driver”:“json-file”,
“log-opts”:{
“max-size” :“50m”,“max-file”:“1”
}
}
随后重启 Docker 服务

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

容器时间和本机不一致。

对于基于 Debian 基础镜像,CentOS 基础镜像制作的 Docker 镜像,在运行 Docker 容器时,传递环境变量-e TZ=Asia/Shanghai进去,能修改 docker 容器时区。

-e TZ=Asia/Shanghai

当宿主机为 Linux 系统时,我们可以直接将宿主机上的/etc/timezone和/etc/localtime挂载到容器中,这样可以保持容器和宿主机时区和时间一致。

 -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro

如果容器里面运行的是Java程序,Java代码获取的时间还是会有8个小时的差别,主要原因是Java获取时间是从/etc/timezone里获取时区的。
解决方法:挂载主机的/etc/timezone到容器,
如果没有则新建echo “Asia/shanghai” > /etc/timezone或者是通过Jvm参数-Duser.timezone=GMT+08将时区信息传进Jvm里,Docker运行容器时添加启动参数:

-e JAVA_OPTS='-Duser.timezone=GMT+08'

最终使用以下参数组合使时间一致了

-e JAVA_OPTS='-Duser.timezone=GMT+08'  -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro代码片

最终没有加环境变量-e TZ=Asia/Shanghai,使用了感觉没什么作用,还得增加/etc/timezone文件。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值