ローカルの Docker ホストからは公開されたホストポートを、共有ネットワーク上の別コンテナからはサービス名とコンテナの target ポートを使います。内蔵の「ホストとコンテナで異なるポート」サンプルでは、database がホストのバインド先を指定せず ports: 15432:5432 を宣言し、api と database が default ネットワークを共有しています。api からの候補は database:5432、ローカルの Docker ホストからの候補は localhost:15432 です。このサンプルの設定から導いた候補であり、接続テストの結果ではありません。
異なるサービス間では、両方が対応範囲内のネットワークを共有している場合にだけ、サービス名を使った接続先候補を示します。コンテナ内の localhost は、そのコンテナ自身を指します。各結果には services.database.ports[0] や接続元・接続先の networks などの設定パスを表示し、手入力した待ち受けポートは manual と示します。宣言されたネットワークに共通項がなければ、共有ネットワークがないと表示します。ほかのすべての経路を否定するものではなく、実際の Docker ネットワークをテストするものでもありません。
ブラウザ内で単一の Compose YAML ドキュメントを解析します。Docker の起動、curl の実行、実際の接続テストは行いません。入力上限は 1 MiB(UTF-8 で 1,048,576 バイト)、100 サービス、ports/expose の合計 500 項目です。未解決の変数、ポート範囲、外部ネットワーク、network_mode、include などの非対応設定は、推測せず非対応または判定不能と表示します。アプリの起動や待ち受けは確認できません。
このテーマに関するよくある疑問と回答をまとめました。
接続元によって異なります。内蔵サンプルでは、database がホストのバインド先を指定せず 15432:5432 を宣言し、api と database が default ネットワークを共有しています。ローカルの Docker ホストからは公開ポートを使う localhost:15432、api からはサービス名とコンテナの target ポートを使う database:5432 が候補です。バインド先やネットワークの設定が変われば結果も変わる場合があります。どちらも接続できることの証明ではありません。
コンテナ内の localhost は、そのコンテナ自身を指し、別のサービスや Docker ホストを指すものではありません。接続元と接続先が同じコンテナなら localhost が適切な場合があります。対応範囲内のネットワークを共有する別サービスへは、内蔵サンプルの database:5432 のようにサービス名とコンテナの target ポートを使います。ツールは設定上の不一致を示すだけで、アプリが接続を受け付けるかはテストしません。
expose だけではホストにポートを公開しません。ports に固定の published 値があれば、固定ホストポートの候補を導けます。その値がなければ YAML から固定ホストポートは判断できず、Docker が実行時に動的に割り当てる場合があります。実際の割り当ては docker compose port で確認してください。ネットワークを共有するサービス間の接続に expose は必須ではありません。ポートの宣言がなければ、確認済みの TCP 待ち受けポートを入力できます。イメージ名からは推測しません。
対応範囲内の設定モデルで、接続元と接続先に共通の宣言済みネットワークがないため、サービス名を使った直接の接続先候補を提示できないという意味です。networks を省略した場合や空の集合を指定した場合、Compose は default ネットワークを使います。separate という結果は、考えられるすべての経路が遮断されていることを証明するものでも、完全な接続テストでもありません。表示されたネットワーク設定パスと、明示的に設定された別の経路を確認してください。
いいえ。一致とは、入力したホスト名とポートが設定から導いた候補と同じという意味だけです。アプリの起動、待ち受けインターフェースやポート、プロトコルの処理、ファイアウォール、認証は確認しません。Docker を起動せず、サービスへのネットワーク要求も送りません。接続できると判断する前に、これらの実行時の条件を別途確認してください。
単一の解析済み Compose YAML と、通常の bridge ネットワークやポート設定の一部だけを扱い、すべての Compose 機能には対応していません。変数、ポート範囲、include、外部ネットワーク、profiles、network_mode は解決しません。選択した経路にこれらが影響する場合は、アドレスを推測せず判定不能または非対応と表示します。先に docker compose config で変数を解決し、ファイルを統合してから、出力された YAML を貼り付けられます。実行時の依存関係や残る非対応の設定は、別途確認が必要です。