docker启动报错 library initialization failed - unable to allocate file descriptor table (core dumped),
一般情况是ulimit -n 句柄问题,首先在宿主机执行ulimit -n 查看具体数量,如果是1024则需要调大一些,我这里设置的值为65536。
在/etc/profile增加:
ulimit -n 65536
执行source /etc/profile 刷新配置
然后在启动容器时增加ulimit配置,我这里使用的是docker-compose,我的配置如下:
hbase:
image: hbase:2.4.15-slim
#下方为ulimit配置soft和hard的大小
ulimits:
nofile:
soft: 65536
hard: 65536
container_name: hbase
hostname: master
restart: always
logging:
driver: "json-file"
options:
max-size: "500m"
volumes:
- ${HBASEDATA}/hbase-data:/data/hbase-data
- ${HBASEDATA}/zookeeper-data:/data/zookeeper-data
environment:
- TZ=Asia/Shanghai
#使用root
privileged: true
修改之后清除之前容器,这一步很重要,然后重新启动容器即可。
解决Docker容器libraryinitializationfailed:ulimit-n配置调整
文章讲述了如何解决Docker启动时遇到的libraryinitializationfailed错误,主要原因是ulimit-n句柄不足。作者提供了在宿主机设置ulimit-n为65536,并在docker-compose配置文件中增加ulimits来确保容器有足够的句柄资源,最后强调了重启容器的必要性。
1243

被折叠的 条评论
为什么被折叠?



