【问题标题】:Docker command with build / run / etc. "too many open files"带有构建/运行/等的 Docker 命令“打开的文件太多”
【发布时间】:2017-03-20 05:07:49
【问题描述】:

我在服务器机器上安装了 Docker(使用 Ubuntu 16.04),但尝试运行任何命令时,我收到此错误:

“来自守护进程的错误响应:Get https://registry-1.docker.io/v2/: dial tcp:lookup registry-1.docker.io: too many open files”

请问,谁知道如何解决这个问题?

码头工人信息:

Containers: 18
Running: 0
 Paused: 0
 Stopped: 18
Images: 4
Server Version: 17.03.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 76
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-ini
containerd version: 977c511eda0925a723debdc94d09459af49d082a
runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-59-generic
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.953 GiB
Name: web.renderdeal.com
ID: LXNZ:I6HH:ZVBB:KS3V:3WCT:ADWY:C2MZ:QJ37:VZUU:EZ6T:PYWO:66WQ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: animarender
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

/Docker 信息

码头工人版本

Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 11:02:43 2017
 OS/Arch:      linux/amd64


Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 11:02:43 2017
 OS/Arch:      linux/amd64
 Experimental: false

/docker 版本

【问题讨论】:

  • P.S.但来自 docker hub 的简单“hello-world”正确运行

标签: docker build command


【解决方案1】:

考虑到 Docker 状态似乎没问题,请检查问题是否在您身边(如 this ticket

让我们检查一下当前打开的文件

lsof | grep "rclone" | wc -l
returns 6458

现在,检查当前的 ulimit

ulimit -n
returns 1024

将其设置为 9000 并再次检查

ulimit -n 9000 && ulimit -n
returns 9000

要使ulimit 更持久,您可以编辑/etc/security/limits.conf
并添加:

* soft nofile 9000 + reboot

或将其写入您用户的.bashrc

【讨论】:

  • 即使我更改了 ulimit -n 9000 也对我不起作用
  • @AliYeşilkanat 差不多 5 年后,我不确定还有什么其他因素在这里很重要。您当前的操作系统和 Docker 版本可能与 2017 年的版本完全不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 2016-07-21
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
相关资源
最近更新 更多