创建容器时收到了错误消息。
Error response from daemon: too many open files
但我找不到有关该错误的任何信息。 (我看到了https://github.com/docker/libcontainer/issues/211,但这不是同一个问题。) 有人知道吗?
感谢。
答案 0 :(得分:2)
打开文件数的默认限制为1024.您可以通过两种方式增加它:
使用--ulimit
参数运行容器:
docker run --ulimit nofile=5000:5000 <image-tag>
使用--privileged
模式运行容器并执行ulimit -n 5000
。
您可以找到更多信息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