Docker・コンテナ

Docker Composeバリデーター

Composeの宣言を読み、診断、依存グラフ、マウントと変数参照を照合します。

Docker Composeバリデーター

Compose YAML入力

分析結果

YAMLはこのブラウザーで処理します。Docker実行、環境ファイル読込、ネットワーク要求は行いません。

確認オプション

入力は表示されています。出力を表示すると、秘密を含む元の値を持つYAMLを保存できます。

静的検査:Composeスキーマfee041b(2026-09-01)。補間、ファイル読込、profileの有効化、コンテナ実行はしません。

最大200,000 UTF-16単位、100サービス、500関係レコード。表示は50件ずつです。

入力または設定が変わりました。保存前に再分析してください。

レビューの途中で、YAMLの字下げだけを直してもサービス間の問題は残ります。Docker Composeバリデーターは、未宣言のボリュームや同じホストポートを使う設定を元の場所に結び付けます。原文を保ったまま整形結果を比較し、実行前に確認すべき宣言を絞り込めます。

Docker Composeバリデーターを使う場面

宣言された接続をまとめて読む

Docker Composeバリデーターの矢印は、依存するサービスから依存先へ向かいます。長いdepends_on形式のconditionも残るため、起動順とヘルスチェック条件を混同せず読めます。ボリュームやサービス名前空間の関係も同じ入力から生成しますが、図が接続成功を保証するわけではありません。

三つのサービスが順につながり、データベースの下に永続ボリュームが接続された図。

競合と未確定の状態を区別する

コンテナ側の番号が異なっていても、ホスト側の同じポートには競合が起こります。TCPとUDP、バインド先アドレスを分けて比較し、範囲割当やprofileを含む重なりは可能性の警告にします。実行時に決まる番号を推測して埋めません。

二つのサービスから同じホストソケットへ向かう線を強調した図。

診断から保存までに確認すること

01

先に構造の問題を直す

YAML検証では行と列、スキーマ検証ではフィールドのパスを確認します。構造エラーがある間は関係ビューを完全な結果として扱えません。versionの数字で古い仕様に切り替わることもありません。

02

ポートの左右を読み分ける

二つのコンテナが内部で80を使うだけなら競合ではありません。ホストアドレス、公開ポート、プロトコルの組を見ます。変数を含む記法と自動割当は未確定と表示されるので、実機側で最終値を確認してください。

03

構成値を表示してから保存する

入力は見えますが、出力全体は初期状態で非表示です。表示を有効にすると実際の値を含むYAMLのコピーと保存が可能になります。自動分析を切るとボタンまたはCtrl/Cmd + Enterで実行でき、編集後の古い結果は保存できません。

同じ入力から得られる確認材料

固定スキーマと限定的な意味検査

2026-09-01の公式Composeスキーマに加え、参照先不足、依存循環、ポート記法などを検査します。未知のキーは削除せず診断します。整形はコメントとアンカーを保ち、キー順や入力欄を勝手に変更しません。

依存グラフとマウントの対応

depends_onの長短形式、名前空間共有、links、volumes_fromを宣言として表示します。名前付きボリュームはトップレベルの定義と照合します。bindのパスは読めますが、そのファイルを開いたり存在を調べたりしません。

環境変数の名前だけを収集

文字列値の$VAR、波括弧形式と入れ子の代替値を走査し、$$はエスケープとして扱います。裸のenvironment項目やnull値はシェルからの受け渡しです。テンプレートは重複を除いたNAME=形式で、既定値や秘密の値を含めません。

用途の違う三種類の保存

YAMLには元の値と補間式が残ります。JSONレポートは全文と変数の既定値を除き、パスや診断を残します。ENVテンプレートは空値です。長いリストは50件ずつ表示し、保存には上限内の全件を含めます。

実行環境が必要になる範囲

起動や到達性は検証しない
Dockerの実行、イメージ取得、ヘルスチェック、ポートのスキャンは行いません。スキーマに合っても、権限や実際のネットワークによって起動は失敗します。最終確認は使用するDocker環境で行ってください。
外部ファイルや複数文書を解決しない
複数のYAML文書、重複キー、循環エイリアス、未対応タグは拒否します。includeとextendsは外部文脈がないため構成の保存を止めます。.envとenv_fileは読み込まず、オーバーライドのマージも行いません。
profileは全宣言をまとめて見る
どのprofileを起動するかは選択しません。対象サービスが実際には同時起動しない場合でも、ポート衝突の可能性を表示します。割当範囲やIPv4/IPv6のワイルドカードも、実行時の挙動を断定できないケースです。
非表示はファイルの匿名化ではない
原文は入力欄に残り、出力の表示を許可すれば秘密を含む値も保存されます。YAML保存はエラーがない場合に限ります。エラーを含むJSONレポートは保存できますが、合格証として使うものではありません。
入力と展開には上限がある
YAML 1.2のアンカーとマージキーを有界で処理します。最大200,000 UTF-16単位、100サービス、500関係レコード。展開は20,000ノード、深さ40までです。公式スキーマはfee041bで固定され、後日の追加機能を自動取得しません。
宣言を越える推測はしない
bind、名前付きボリューム、tmpfsを中心に検査し、他のマウント型は手動確認を促します。ホストパスの正規化や実ファイルへのアクセス、サービスの準備完了時刻の計算はありません。latestタグの使用方針も判定しません。

Docker Composeバリデーターの質問

入力した内容は外部に送信されますか?

入力はブラウザー内のワーカーで解析されます。Composeを実行したり、入力のURLや外部ファイルを取得したりしません。ダウンロードとコピーは利用者が明示的に操作したときだけ行います。

どのポート記法に対応していますか?

短いホスト:コンテナ形式と、published、target、host_ipなどを持つ長い形式を読みます。TCPとUDPを区別し、IPv6のアドレスも扱います。変数や自動割当は未確定とし、範囲の重なりは保守的に警告します。

latestタグは警告されますか?

このページはlatestを禁止するイメージ運用ルールを持ちません。タグを固定すべきかは環境の更新方針に依存します。別の検証ツールのタグ警告と、本ページのスキーマ・関係診断は目的が異なります。

docker compose configとは何が違いますか?

ローカルのComposeはファイルや環境変数を解決して構成を組み立てられます。本ページは貼り付けた一文書を固定スキーマで確認し、選択した関係を調べます。複数ファイルを扱う場合は先にローカルで解決してください。

別コンテナからデータベースへ接続できますか?

依存関係の矢印だけでは接続できると判断できません。実際のネットワーク、サービス名、認証情報、データベースの待受状態を確認する必要があります。本ページは名前と宣言を表示しますが、MySQLなどへの接続は試しません。

診断を詳しく確認したい宣言がありますか?

起動する前に宣言を照合する

Docker Composeバリデーターに戻り、診断パスとホスト側の割当を確認してから、必要な構成値を表示して保存してください。