Docker错误:打开的文件太多

时间:2015-04-02 00:33:52

标签: docker

创建容器时收到了错误消息。

Error response from daemon: too many open files

但我找不到有关该错误的任何信息。 (我看到了https://github.com/docker/libcontainer/issues/211,但这不是同一个问题。) 有人知道吗?

感谢。

3 个答案:

答案 0 :(得分:2)

打开文件数的默认限制为1024.您可以通过两种方式增加它:

  1. 使用--ulimit参数运行容器:

    docker run --ulimit nofile=5000:5000 <image-tag>
    
  2. 使用--privileged模式运行容器并执行ulimit -n 5000

  3. 您可以找到更多信息here

答案 1 :(得分:0)

在docker systemD服务里面设置ulimit更方便

修改/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_ADD_RUNTIMES --default-ulimit nofile=65535:65535

答案 2 :(得分:0)

我不敢相信这个问题还没有得到更好的解决,我在我的 Mac 上使用 Docker 进行了很多开发,所以 Docker 正在一个微型虚拟机中运行。大约 2 年前,我遇到了这个问题,我花了很长时间才找到解决方法,而且我一直都在解决这个问题。我忘记了我在哪里找到了这个“修复”,但是当我重新启动我的 Mac 时,我必须运行它,以便我的容器不会抱怨“打开的文件太多” - 如果我忘记运行它,那么它并不总是很明显问题是,确定一个容器会在某处记录错误,但是当您有数十个容器运行并具有详细的日志记录时,它很难跟踪 - 无论如何,脚本是

#!/bin/bash
docker run -ti --privileged centos sysctl fs.inotify.max_user_instances=8192