【发布时间】:2015-04-02 00:33:51
【问题描述】:
我在创建容器时收到该错误消息。
Error response from daemon: too many open files
但我找不到有关该错误的任何信息。 (我看到了https://github.com/docker/libcontainer/issues/211,但这不是同一个问题。) 有谁知道吗?
谢谢。
【问题讨论】:
标签: docker
我在创建容器时收到该错误消息。
Error response from daemon: too many open files
但我找不到有关该错误的任何信息。 (我看到了https://github.com/docker/libcontainer/issues/211,但这不是同一个问题。) 有谁知道吗?
谢谢。
【问题讨论】:
标签: docker
默认打开文件数限制为1024。您可以通过两种方式增加:
使用--ulimit参数运行容器:
docker run --ulimit nofile=5000:5000 <image-tag>
以--privileged模式运行容器并执行ulimit -n 5000。
您可以找到更多信息here。
【讨论】:
在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
【讨论】:
我不敢相信这个问题还没有得到更好的解决,我在我的 Mac 上使用 Docker 进行了很多开发,所以 Docker 在一个微型 VM 中运行。大约 2 年前我遇到了这个问题,我花了很长时间才找到解决方法,而且我一直都遇到这个问题。我忘记了我在哪里找到了这个“修复”,但是当我重新启动我的 Mac 时,我必须运行它,以便我的容器不会抱怨“打开的文件太多”——如果我忘记运行它,那么它并不总是很明显问题是,确定一个容器会在某处记录错误,但是当您有数十个容器运行并详细记录时,它很难跟踪 - 无论如何,脚本是
#!/bin/bash
docker run -ti --privileged centos sysctl fs.inotify.max_user_instances=8192
【讨论】: