首页 > 编程语言 >docker-compose 启动 java 容器时报错 library initialization failed - unable to allocate file descriptor tabl

docker-compose 启动 java 容器时报错 library initialization failed - unable to allocate file descriptor tabl

时间:2022-10-12 18:55:55浏览次数:85  
标签:systemd compose java ulimit initialization nofile 40960 docker

问题: docker-compose 启动 java 容器时报错

library initialization failed - unable to allocate file descriptor table - out of memoryPicked up JAVA_TOOL_OPTIONS: xxx
无法启动

排查: 搜索一下,发现是 ulimit 参数问题
查看系统 ulimit 参数,发现值设置的过小,只有 1024,
修改 /etc/security/limits.conf 设置

* soft noproc 40960
* hard noproc 40960
* soft nofile 40960
* hard nofile 40960

重启 docker 发现故障依旧,还是报错。
单独给 docker 添加 --ulimit nofile=122880:122880 启动参数,发现可以解决问题,但是每个容器都要加参数,非常麻烦。
最后终于发现可能是 systemd 的问题
running-jdk-8-in-docker-suddenly-broken

解决:
/etc/systemd/system/ 或者 /usr/lib/systemd/system/
找到 docker.service 文件,在 ExecStart=/usr/bin/dockerd 后面添加 --default-ulimit nofile=65536:65536 参数

重启 docker 生效

systemctl daemon-reload

systemctl restart docker

标签:systemd,compose,java,ulimit,initialization,nofile,40960,docker
From: https://www.cnblogs.com/iyiluo/p/16785601.html

相关文章

  • 入门高效学习Java
     学习JAVA    在当下学习Java的视频,在如今的互联网是很多很多的,但现在讲解内容有干货的学习视频还是较为少的。尤其是初学JAVA的同学在看找相关的教学视频的时候,一......
  • Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?
    花下猫语:在上一篇《​​Python为什么能支持任意的真值判断?​​》文章中,我们分析了Python在真值判断时的底层实现,可以看出Python在对待布尔值时,采用了比较宽泛的态度。......
  • Java中fail-fast与fail-safe机制
    fail-fast快速失败一个线程在读取集合种的数据时,另外一个线程在修改集合会导致fail-fastArrayListHashMap具备此机制Map<Integer,String>map=newHash......
  • Java数组05(数组相关应用)
    Arrays类:数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了Arrays供我们使用,从而可以对数据对象进行一些基本操作可以查......
  • java.class.path详解
    java中System.properties的一个属性“java.class.path”(系统类加载器加载字节码class的路径)的获取及详解:获取packagecom.yoyo.yotils.yoyo.system;importorg.apach......
  • java基础语法[01]
    一、注释注释不会被执行,是给写代码的人看的。是非常重要非常好的习惯。单行注释://多行注释:/**/文档注释:javadoc,/***/有兴趣可以搜:有趣的代码注释。......
  • java 将字符串转成json和字符串转成json属组的方法
      开发中经常遇到将字符串转成json和字符串转成json属组的方法,网上搜到的方法,好多都是不好用的,今天这里记录一下方便自己今后查看,也提供给需要的人。依赖:<!--处......
  • 安卓逆向 JNI实先java与C互通
    先来一张吊图jdk_1.6.0_43/include/jni.h 这个头文件的地址头文件分布  我们需要熟悉的 反射获取java中的类1.jclass/类型(JNICALL*FindClass)函数......
  • 谁说 JavaScript 简单的?
    英文|AurélienHervé 译文| ​zcfy.cc/article/who-said-java-was-easy-hacker-noon-3026.html这里有一些Javascript初学者应该知道的技巧和陷阱。如果你已经是专家......
  • JavaScript闭包的深入理解
    闭包算是javascript中一个比较难理解的概念,想要深入理解闭包的原理,首先需要搞清楚其他几个概念:一、栈内存和堆内存学过C/C++的同学可能知道,计算机系统将内存分为栈和堆两部......