コミュニティソリューション

ZimaOSダッシュボードにある不明なレガシーアプリ:まずDockerコンテナを特定する

A new ZimaOS user saw an unexplained Legacy App named admiring_swanson. docker ps -a exposed the underlying container, and removing the unwanted container cleared the dashboard entry.

ZimaOSのLegacy Appタイルは、通常のApp Store登録フローを通じてインストールされていないDockerコンテナを示している場合があります。そのため、見慣れない名前 admiring_swanson だけでは、そのコンテナが実際に何をしているのかを特定できません。

予期しないZimaOS Legacy Appダッシュボードタイルの背後にある未知のDockerコンテナを示すdocker psの出力
元のスレッドでは、docker ps -aを使って、予期しないダッシュボードタイルの背後にあるコンテナを特定しました。
admiring_swansonという予期しないLegacy Appが表示されたZimaOSダッシュボード
ダッシュボードのタイルには、見慣れたアプリケーション名ではなく、Dockerが自動生成したコンテナ名が表示されていました。
未知のadmiring_swanson Dockerコンテナに対するZimaOS Legacy Appのインポートオプション
ユーザーは、その正体が分かるまで未知のコンテナをインポートしないという適切な判断をしました。

インポートまたは削除する前にコンテナを特定する

スレッドで最初に実行された正しいコマンドは次のとおりです。

docker ps -a

Dockerのコンテナ一覧表示のドキュメントによると、docker ps -aはすべての状態のコンテナを一覧表示し、イメージ、状態、名前などの情報を確認できます。通常、ランダムに生成されたコンテナ名よりもイメージ名のほうが有用です。

Legacy Appだからといってマルウェアとは限らない

Legacy Appのタイルは、ダッシュボードがインポートまたは管理できるコンテナを検出したことを意味します。それだけで、誰がそのコンテナを作成したのか、悪意のあるものかどうかが確定するわけではありません。判断する前に、イメージ、作成日時、マウント、ポート、ラベル、コマンドを確認してください。

最初のDockerアプリでは、通常のZimaOSにおけるDockerのライフサイクルを説明しています。また、ZimaOS App Storeの要件では、App Storeで管理されるパッケージと、その登録フロー外で作成されたコンテナを見分ける際に役立つ情報を提供しています。

特定したコンテナだけを削除する

ユーザーが不要なコンテナを特定した後、そのコンテナを停止して削除することでLegacy Appが消えました。Dockerのコンテナ削除のドキュメントでは、コンテナの削除方法に加えて、ストレージの接続方法によってボリュームの扱いが異なることも説明しています。

生のコマンドではなく、Dockerスタックを確認するGUIが必要な場合は、ZimaOS上のPortainerを利用できます。

他人のコンテナIDをコピーしない

コンテナIDはホストごとに固有です。自分のdocker ps -aの出力を使って、正確なイメージとコンテナを特定してから、停止または削除してください。重要な永続データに関連付けられているコンテナの場合は、削除前にそのデータをバックアップしてください。

要点

正体不明のLegacy Appは、すぐにインポートまたは削除するのではなく、未知のDockerコンテナとして扱うべきです。まずDockerで調査し、認識できるソフトウェアに属しているかを確認してから、不要だと確認できたコンテナだけを削除してください。元のケースでは、そのコンテナを削除することでダッシュボードのタイルが消えました。