Сегодня у меня проблема с docker, он остановился и я не могу его запустить
systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2020-01-28 09:59:03 +0330; 1min 51s ago
Docs: https://docs.docker.com
Process: 2327 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=205/LIMITS)
Main PID: 2327 (code=exited, status=205/LIMITS)
Jan 28 09:59:03 example.com systemd[1]: Starting Docker Application Container Engine...
Jan 28 09:59:03 example.com systemd[1]: docker.service: main process exited, code=exited, status=205/LIMITS
Jan 28 09:59:03 example.com systemd[1]: Stopped Docker Application Container Engine.
Jan 28 09:59:03 example.com systemd[1]: Unit docker.service entered failed state.
Jan 28 09:59:03 example.com systemd[1]: docker.service failed.
Я вижу, что у меня status=205/LIMITS
Я помню, что 3 дня назад я изменил ulimit
configs
# /etc/security/limits.d/custom.conf
root soft nofile 1000000
root hard nofile 1000000
* soft nofile 1000000
* hard nofile 1000000
# /etc/sysctl.conf
fs.file-max = 1000000
fs.nr_open = 1000000
Я увеличил fd до 1 миллиона, после отмены изменений docker успешно запустился
В чем именно проблема???
status = 205 / LIMITS
означает одно из этих достижений лимита LimitCPU =, LimitFSIZE =, LimitDATA =, LimitSTACK =, LimitCORE =, LimitRSS =, LimitNOFILE =, LimitAS = , LimitNPROC =, LimitMEMLOCK =, LimitLOCKS =, LimitSIGPENDING =, LimitMSGQUEUE =, LimitNICE =, LimitRTPRIO =, LimitRTTIME =
Я не уверен насчет вашей версии ОС, но приведу один пример для Ubuntu 16, создайте этот файл / и т. Д. /systemd/system/docker.service.d/customexec.conf
, если не существует с указанным ниже содержимым.
[Service]
LimitNOFILE=1000000
Перезагрузить systemctl daemon-reload
Пакет докеров установил предел выше, чем наш новый лимит, поэтому процесс не запускался. Итак, вы можете попробовать ниже, если указанный выше вариант не работает для вас.
sysctl -w fs.nr_open = 1048576