web-dev-qa-db-ja.com

modprobeエラーのため、Dockerサービスを開始できなくなりました

Dockerを実行しているサーバーで、自分で修正できない問題が発生しました。 Dockerバージョン18.09.0を使用しており、Ubuntu 16.04.5LTSで4d60db4をビルドします。日中、Dockerアプリケーションが利用できないことに気づいたので、サービスを確認しました。 service docker startでDockerサービスを開始しようとすると、A dependency job for docker.service failed. See 'journalctl -xe' for detailsが表示されます。 journalctlを確認すると、次の出力が得られます。

systemd[1]: Starting Docker Application Container Engine...
    -- Subject: Unit docker.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit docker.service has begun starting up.
systemd[1]: Starting containerd container runtime...
    -- Subject: Unit containerd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit containerd.service has begun starting up.
modprobe[811]: modprobe: ERROR: ../libkmod/libkmod.c:514 lookup_builtin_file() could not open builtin file '/lib/modules/4.4.0/modules.builtin.bin'
modprobe[811]: modprobe: FATAL: Module overlay not found in directory /lib/modules/4.4.0
systemd[1]: containerd.service: Control process exited, code=exited status=1
systemd[1]: Failed to start containerd container runtime.
    -- Subject: Unit containerd.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit containerd.service has failed.
    --
    -- The result is failed.
systemd[1]: Dependency failed for Docker Application Container Engine.
    -- Subject: Unit docker.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit docker.service has failed.
    --
    -- The result is dependency.
systemd[1]: docker.service: Job docker.service/start failed with result 'dependency'.
systemd[1]: containerd.service: Unit entered failed state.
systemd[1]: containerd.service: Failed with result 'exit-code'.
systemd[1]: Stopped Docker Application Container Engine.
    -- Subject: Unit docker.service has finished shutting down
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit docker.service has finished shutting down.

サーバーを複数回再起動してみました。システム上の他のすべてが完全に実行されています(メール、バックアップ、Webサイト)。

私はmodprobeやエラーの経験がないので、詳細なヘルプをいただければ幸いです。

前もって感謝します

1
Dominik Spiertz

Debian 9でdocker-ceをバージョン18.09.0にアップグレードした後、今日同じエラーが発生しました。そのバージョンの解決策を提供することはできませんが、バージョン18.06.1に戻ると再び起動しました。 Ubuntuの場合、これは次のようになります。

Sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu

バージョン18.09.0はこれまでに機能しましたか?アップグレード直後にインストールがクラッシュしました。

編集:この問題に関連するGitHubに関するレポートが実際にあります。 https://github.com/containerd/containerd/issues/2772

新しいcontainerdは、すでにロードされている場合でも、オーバーレイモジュールをロードしようとしているようです。オーバーレイモジュールがシステムにロードされていますが、/lib/modules/にファイルが見つかりません

2
A. Schommer

あなたがファイルを持っているかどうか調べてください(あなたは確かにUbuntu16.04を在庫しているはずです):

find /lib/modules -name "*overlay*"

そして、あなたはそれを自分でロードできますか?

# modprobe overlay
# echo $?
0

# lsmod | grep overlay
overlay                49152  0

Dockerがロードに失敗する理由はわかりませんが、スマートであれば、すでにロードしている場合はロードする必要はありません。したがって、自分でロードできる場合は、/etc/modulesに追加して、起動時にロードされるようにしてください(再起動後にlsmodで再度確認してください)。

echo overlay >> /etc/modules
1
Peter