无法在容器中启动sshd:“错误:打开的文件过多”

我想知道下面的“太多打开的文件”问题的原因和纠正措施。 或者请告诉我如何检查问题。

  1. 问题在以下情况下,在Docker容器中无法执行systemctl命令。 1)启动docker集装箱一定数量(20-25)或更多。 2)在每个容器启动时sshd服务被激活。 3)超出一定数量的集装箱。 消息在下面

    $ docker exec -it hayashi.naru-work24 / bin / bash [root @ 35a013c4b396 /]#systemctl start sshd.service错误:打开的文件太多sshd.service的Job取消。 一定数量或更less的容器没有问题

  2. 环境

    • 主机操作系统

      #uname -a Linux gpu07 3.13.0-96-generic#143 -Ubuntu SMP Mon Aug 29 20:15:20 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux

    • guest os image nvidia / cuda:8.0-cudnn5-devel-centos7

    • docker版本

      docker -v Docker版本1.12.6,build 78d1802 1.12.1,build 23cf638也会发生#docker info Containers:367 Running:24暂停:0已停止:343图像:1122服务器版本:1.12.6存储驱动程序:aufs Root目录: / data / docker / aufs备份文件系统:extfs目录:1827 Dirperm1支持:falselogging驱动程序:json-file Cgroup驱动程序:cgroupfs插件:卷:nvidia-docker本地networking:网桥null主机叠加群集:不活动运行时:runc默认运行时: runc安全选项:apparmor内核版本:3.13.0-96-generic操作系统:Ubuntu 14.04 LTS OSType:linux架构:x86_64 CPU:48内存总数:503.8 GiB名称:gpu07 ID:RA7P:IZSJ:RLKJ:Y6J3:MO55: MMG6:PT4G:UZNB:PUQS:VVX3:VBMS:Z7OU Docker Root目录:/ data / dockerdebugging模式(客户端):falsedebugging模式(服务器):false Http代理:http:// … Https代理:http: // …registry: https ://index.docker.io/v1/警告:无交换限制支持不安全的注册局:127.0.0.0/8

  3. 我的调查“太多打开文件”映射errno 24.所以我想一些系统调用返回errno 24.我检查了以下文件和目录。

    • 的/ proc / {PID} /限制
    • 的/ proc / {PID} / FD

    当问题发生时,没有进程打开大量文件与限制数相比较。 我无法find哪个进程返回errno 24。

    我们正在使用nvidia-docker插件。 但是这似乎没有关系。 https://github.com/NVIDIA/nvidia-docker/issues/313

对不起,我的英语感谢