Docker の起動に失敗しました

Docker の起動に失敗しました

今日、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/LIMITS3日前にulimit設定を変更したのを覚えています

# /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を100万に増やし、変更を元に戻すとdockerが正常に起動しました

ここで正確に何が問題なのでしょうか?

答え1

status=205/LIMITSこれらの制限ヒットの1つを意味しますLimitCPU=, LimitFSIZE=, LimitDATA=, LimitSTACK=, LimitCORE=, LimitRSS=, LimitNOFILE=, LimitAS=, LimitNPROC=, LimitMEMLOCK=, LimitLOCKS=, LimitSIGPENDING=, LimitMSGQUEUE=, LimitNICE=, LimitRTPRIO=, LimitRTTIME=

お使いの OS バージョンはわかりませんが、Ubuntu 16 の例を 1 つ挙げると、/etc/systemd/system/docker.service.d/customexec.conf以下の内容のファイルが存在しない場合は作成します。

[Service]
LimitNOFILE=1000000

リロードしてくださいsystemctl daemon-reload

docker パッケージが新しい制限よりも高い制限を設定したため、プロセスを開始できませんでした。上記のオプションが機能しない場合は、以下を試してください。

sysctl -w fs.nr_open=1048576

関連情報