Docker Composeジェネレーター
docker-compose.ymlを手で書くには、正確なインデント、すべてのポートマッピングの引用符、そして手元のComposeが理解するバージョン文字列を覚えておく必要があります。このジェネレーターでは、名前、イメージ、ホスト:コンテナのポートマッピング、ボリュームという単純なフィールドでサービスを定義できます。最新のCompose仕様(versionキーなし)に沿った有効なYAMLファイルを、妥当な既定値とともに出力します。
Composeファイルの作り方
-
1
サービスを追加
各サービスに名前、イメージ、ホスト:コンテナのポートマッピング、ボリュームを設定します。最初から2つのサンプルサービスが入っています。
-
2
行を調整または削除
フィールドは直接編集できます。+ Serviceボタンでサービスを追加し、不要な行は削除してください。
-
3
生成されたYAMLを確認
入力に合わせてプレビューが更新されます。ポートマッピングは引用符で囲まれ、versionキーは省略されます。
-
4
ファイルをコピー
生成されたdocker-compose.ymlをコピーし、プロジェクトのルートに貼り付けます。
現代のCompose仕様
Compose V2(Docker Desktopと現代のDocker Engineに同梱されるプラグイン)はCompose Specificationに従います。version:キーは非推奨で、ジェネレーターはそれを省きます。トップレベルのキーはservices、networks、volumes、configs、secretsです。
サービスの構造
本番寄りのサービスはこのように見えます。
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
ボリューム:バインドマウント vs 名前付き
- バインドマウント(
./app:/var/www)はコンテナをホスト上のパスに結びつけます。変更が即座に反映されるため、ローカル開発に最適です。 - 名前付きボリューム(
pgdata:/var/lib/postgresql/data)はDockerが管理し、ホストのパスとは独立に永続します。データベースや、rm -rfで誤って消したくないものに適しています。 - 匿名ボリューム、避けてください。再起動は生き延びますが、
docker compose down -vで警告なしに消えます。
ネットワーク
既定でComposeはプロジェクト名にちなんだネットワークを作り、すべてのサービスをそれに接続します。明示的なネットワークの宣言は、次のときに便利です。
- データベースを公開向けのサービスから隔離したい。
- 既存のインフラに合わせるため、カスタムのサブネットを持つブリッジが必要。
- コンテナを既存の外部ネットワークに接続したい(
external: true)。
避けたいよくある間違い
- versionキーの競合。 先頭の
version: "3.8"は、healthcheckのstart_intervalのような新しい機能が古いComposeで動くのを妨げます。ジェネレーターはversionキーを省きます。 - ポートの引用符。
8080:80は、一部の縁のケースでYAMLの60進数として解析されます。ジェネレーターは常にポートマッピングを引用符で囲みます。 - ハードコードされた秘密情報。 compose.ymlに直接書かれた秘密情報はgitにコミットされてしまいます。
env_fileかプラットフォームのシークレットストアに保管してください。 - conditionなしのdepends_on。 素の
depends_on: [db]はサービスの準備ではなくコンテナの起動を待ちます。condition: service_healthyを使い、依存先にhealthcheckを追加してください。
よくある質問
現在のCompose Specification(Docker Compose V2に整合)です。ファイルはversion:キーを省きます。これは現代のComposeファイルの書き方です。Docker Compose V2.22以降で動作します。
このバージョンのフォームではできません。ジェネレーターはイメージ、ポート、ボリュームを扱うサービス定義に焦点を当てています。生成されたYAMLにネットワーク、環境変数、ヘルスチェックなどのキーを手動で追加してから利用できます。
いいえ、このツールはcompose.ymlに焦点を当てています。Dockerfileには、ベースイメージの選択と5つのスタックのCOPY/RUN順序を扱うDockerfileジェネレーターを使ってください。
いいえ。サービス定義はこのページでYAMLを構築するためだけに使われ、保存、アップロード、共有はされません。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
変更ログジェネレーター
分類した項目から Keep a Changelog 形式の Markdown セクションを作成します。Added、Changed、Fixed、Removed の各カテゴリに項目を貼り付け、Markdown かプレーンテキストを選んで出力をコピーするだけです。
このツールは他の言語でも利用できます
- Docker Compose 생성기 [KO]
- Trình tạo Docker Compose [VI]
- Docker Compose-generator [NL]
- Docker Compose 生成器 [ZH]
- Docker-Compose-Generator [DE]
- Docker Compose Generator [EN]
- Generator Docker Compose [ID]
- Docker Compose-generator [SV]
- Generator Docker Compose [PL]
- مولّد Docker Compose [AR]
- ตัวสร้าง Docker Compose [TH]
- Generador de Docker Compose [ES]
- Générateur Docker Compose [FR]
- Gerador de Docker Compose [PT]
- Docker Compose Oluşturucu [TR]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]