私はdocker-compose
を利用するアプリケーションを開発中です。コンテナの1つはウォッチドッグコンポーネントであり、小さなPythonスクリプトを定期的に実行して兄弟コンテナの状態を取得し、コンテナの1つが停止した場合にアクションを実行します。同じドッカーのコンテナを表示する
この時点までに、監視する必要があるすべてのコンテナ名のリストを使用しましたが、同じdocker-compose
コマンドで作成されたすべてのコンテナを見ることができます。
は以前、コードはこのような何かに見えた:
watched_containers = ["component-a", "component-b"]
def inspect_containers():
containers = {
(container["Names"][0].lstrip("/"), container)
for container in docker.Client().containers(all=True)
}
for container_name in watched_containers:
if containers.get(container_name, {}).get("State") != "running":
alert_container_stopped(container_name)
を私はdockerpy
約docker-compose
を知らないことがわかったので、私はドッキングウィンドウ-COMPOSEプロジェクト名ラベルに基づいてコンテナをフィルタリング機能(com.docker.compose.project
)を作成しました今はコンテナ名の代わりにハードコードされたプロジェクト名があります。現在のプロジェクト名を取得する方法はありますか、同じコンポジション内のコンテナのリストを取得する他の方法はありますか?
ありがとうございました
私のシステムでは、コンテナ内のホスト名変数がContainerIDのに設定されていないが、私はそれを得る他の方法を見つけました(cgroupを使って)。 –