
私の物語
昔々私は電話していたドッカーPHP Laravel キューから何千ものメディア ファイルを処理します。私のコードは、完了したいタスクごとに新しいコンテナーを作成します (例: 「プロセス」、「検索」、「スライス」など)。その後、就寝すると災難が起こりました。目覚めると、1 TB のログ ファイルと、さまざまな状態の数十万のコンテナーがありました。
Docker はもう動作しません。つまり、入力してもdocker version
(あるいは入力しても) そこに留まってじっとしているだけです。Dockerが非常に落ち込んでいるため、docker anything
標準でコンテナーを削除できません。docker rm $(docker ps -a -q)
現在デーモンを呼び出す方法に関する関連情報は次のとおりです。
$> sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
(Meanwhile in another terminal)
$> docker version
(insert infinite darkness here)
私の質問
docker デーモンが応答しない場合、docker コンテナを削除するにはどうすればよいですか?
私は Docker を、API を使用してコードから呼び出される、強化された実行可能ファイルとして使用しています。将来的にコード自体をクリーンアップするには、どのような追加手順を実行する必要がありますか?
答え1
まあ、ちょっと調べてみました。
docker デーモンが応答しない場合、docker コンテナを削除するにはどうすればよいですか?
Ubuntu では、コンテナはディレクトリに保存されます/var/lib/docker/containers
。そのディレクトリの内容を削除すると、状況はさらに改善されます。
また、興味のある人のために言っておくと、削除する必要があったコンテナは約25万個ありました。私が使用しなければならなかったファイルの数を考えるとls /var/lib/docker/containers | xargs -n200 rm -rf
私は Docker を、API を使用してコードから呼び出される、強化された実行可能ファイルとして使用しています。将来的にコード自体をクリーンアップするには、どのような追加手順を実行する必要がありますか?
コンテナを再度使用しない場合は、作業が完了したら正式に「削除」する必要があります。コマンドラインでは、これを使用して実行されdocker rm $(containername)
、コードでは、docker へのアクセス方法によって完全に異なります。