私の質問は一般的すぎるかもしれませんが、しばらくお待ちください。
私はubuntu 18.04 LTSを使用し、最近のthinkpadにdocker-ceをインストールしました( https://docs.docker.com/engine/install/ubuntu/ で説明されている公式のインストール手順を使用)。私のセットアップについては空想は何もありません。
1〜2日前、マシンの電源をオフにしようとするとシステムがハングしました。次に、Dockerを使用しようとすると、デーモンが応答せず、ハングしました。 systemdユニットはロードされましたが、開始されていませんでした。その時点で、電源オフのハングはこのdockerデーモンの問題が原因であると想定していました。
だから私はシステムからドッカーを削除して再インストールしようとしました。 Sudo apt-get purge docker-ce docker-ce-cli containerd.io
このコマンドでもハングしました。
だから私は手動でdpkgのロックを解除しようとしました
Sudo sysmtectl disable docker
pgrep -a apt
Sudo kill -9 <apt process>
Sudo rm /var/lib/apt/lists/lock
Sudo rm /var/cache/apt/archives/lock
Sudo rm /var/lib/dpkg/lock
すべてのdockerおよびcontainerd関連ファイルも削除し、systemdユニットを無効にして削除しました
Sudo systemctl disable docker
Sudo rm -rf /etc/docker
Sudo rm -rf /run/containerd/containerd.sock
Sudo rm -rf /usr/bin/dockerd
Sudo rm -rf /lib/systemd/system/docker.service
Sudo rm -rf /var/lib/docker-engine
Sudo rm -rf /var/lib/docker
Sudo rm -rf /var/run/docker/
Sudo rm -rf /var/run/docker.pid
Sudo rm -rf /var/run/docker.sock
Sudo rm /etc/apt/sources.list.d/docker.list
Sudo rm -rf /var/lib/containerd
Sudo rm -rf /opt/containerd
Sudo systemctl daemon-reload
再起動すると、最終的にパージコマンドを正常に実行できました:Sudo apt-get purge docker-ce docker-ce-cli containerd.io
次に、Dockerを再インストールしようとすると(公式のドキュメントメソッド、安定したチャネルを再度使用)、systemdサービスを有効にするとハングします。
...
Preparing to unpack .../5-docker-ce_5%3a19.03.8~3-0~ubuntu-bionic_AMD64.deb ...
Unpacking docker-ce (5:19.03.8~3-0~ubuntu-bionic) ...
Setting up aufs-tools (1:4.9+20170918-1ubuntu1) ...
Setting up containerd.io (1.2.13-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
Setting up cgroupfs-mount (1.4) ...
Setting up docker-ce-cli (5:19.03.8~3-0~ubuntu-bionic) ...
Setting up pigz (2.4-1) ...
Setting up docker-ce (5:19.03.8~3-0~ubuntu-bionic) ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
これを一時停止(Ctrl + Z)してから、上記のようにすべてを再度クリーンアップする必要があります。
以下は、インストールが進まないときにsystemdサービスがどのように見えるかのスクリーンショットです。
私もやってみましたapt clean
および/またはapt autoclean
その後、再起動して再試行しますが、これまでのところ何も機能せず、インストール時にハングします。
実行しているカーネルのバージョンはわかりませんが、本日この正確な問題に気付き、docker ps
を実行するとコンピューターがハングしただけで、プロセスを強制終了して手動でファイルを削除せずにアンインストールまたは再インストールできないことに気付きました(進行状況バーを再インストールしようとすると、94%で止まりました-スクリーンショットとまったく同じです)。
私が見つけたのは、この問題が発生したすべてのサーバーで、それらがカーネル5.3.0-52-generic(linux-virtual-hwe-18.04
パッケージから)を実行していたことです。 )。
カーネル4.15.0.100.90でlinux-virtual
パッケージをインストールしてカーネルをダウングレードし、そのカーネルで再起動した後、Dockerのインストール/アンインストールは成功しました。
また、同じサーバーに https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.7/ からカーネル5.6.7をインストールし、Dockerを再インストールして成功しました。だから、私の推測では、カーネルに関連するものだと思います。そして私の解決策は、古いまたは新しいカーネルをインストールすることでした。