すべてのDockerコンテナをシャットダウンする

すべてのDockerコンテナをシャットダウンする

Ubuntu 18.04 では実行中のコンテナがすべてシャットダウンされないことを発見しましたservice docker stop。コンテナを制御できなくなりましたが、containerd-shipコンテナ内のプロセスとすべては引き続き実行されています (ただし、ネットワークが削除されたためか、アクセスできません)。

また、containerd を停止しても何も変わりません。設計上、コンテナは停止されないためです。

そして、すでにかなり厳しい状況になった後でも、 gitlab、backuppc、Linux UMLインスタンスkillall containerd-shimなどのプロセスはまだ実行されています。gunicorn

実行中のすべてのコンテナをクリーン シャットダウンするにはどうすればよいですか? 現在の動作では、シャットダウン中にシステムがハングします。

アップデート: リポジトリを使用していることがわかりました (参考:)はKubernetesチュートリアルから来ています(まだ使用していません)。このソースはcontainerd.io、docker-ce、docker-ce-cliの独自バージョンを提供します。

答え1

問題が解決しました。

主なポイントは、dockerから直接追加のリポジトリがあることです(参考:) は、containerd.io、docker-ce、docker-ce-cli の独自バージョンを導入しました。一方、Ubuntu の世界は私の/etc/apt/source.list.

私は現在 20.04 にアップデートし、ubuntu universe のオリジナルの docker パッケージ (docker.io) を使用しています。これは問題なく動作し、期待どおりにシャットダウンします。これは 18.04 でも動作したはずですが、リポジトリを切り替えることで docker がダウングレードされるのを避けたかったのです。

答え2

私の Ubuntu 18.04 インストールでは、実行systemctl stop docker中のすべてのコンテナがシャットダウンされます。systemctl start dockerすべてのコンテナが再び起動します。BMitch さんの意見に同意します。問題を診断するには、インストールに関する詳細情報が必要になります。

実行中のコンテナをすべてシャットダウンする別の方法は次のとおりです。

docker ps -q | xargs docker stop

関連情報