メインコンテンツへスキップ
Toolars
探索

Docker Run から Compose 変換

Docker Run to Compose

docker run のポート・環境変数・マウント・リスタート等のフラグを確認しやすい Compose サービス YAML に翻訳。Docker 不接続。

タスクの道筋 / 入力から結果へ

docker run コマンドを貼り付ける

バグを報告

端末内で処理

処理の詳細

ツールへの入力はこの端末で処理されます。

実行に必要なリソースをダウンロードする場合があります。アカウント機能は別のサービスです。

オフライン利用を準備しています…

プライバシーについて

タスクの道筋 / 入力から結果へ

docker run コマンドを Compose に変換する方法

  1. 01

    docker run コマンドを貼り付ける

    Linux コンテナ向けのリテラルな POSIX シェルコマンド用です。入力は UTF-8 で最大 64 KiB。raw 環境ファイルには Compose 2.30+ が必要です。出力は設定の草案で、シェル、Docker デーモン、イメージは実行・検査しません。単一のリテラルな docker run コマンドを使ってください。ホスト変数を具体的な値に置き換え、文字としての $ は単一引用符で囲むかエスケープしてください。シェル展開、パイプ、リダイレクト、コマンド置換、エスケープされていない改行は未対応です。バックスラッシュによる行継続は対応しています。

  2. 02

    Compose サービスへ変換する

    名前、ポート、明示的な環境変数、raw 環境ファイル、マウント、再起動、ネットワーク、作業ディレクトリ、ユーザー、エントリーポイント、ラベルを変換します。-i/-t(-it を含む)は stdin_open/tty になります。短いオプションは直後の値、長いオプションは =value に対応します。未知のオプションでは変換を停止します。

  3. 03

    生成された YAML を確認する

    イメージ名の後の引数は順序と空文字列を保って command リストになります。空でない entrypoint は単一引数のまま、空の値は解除になります。リテラルのドル記号は Compose の再展開を防ぐため二重化します。既定ネットワークは明示的に bridge とし、バインドでは -v(ホストディレクトリ作成可)と --mount(既存パスが必要)を区別します。

  4. 04

    未対応の一覧を確認する

    未対応のオプションがあるため、部分的な YAML は生成しませんでした。ガイドに記載されたオプションを使い、コンテナのコマンド引数はイメージ名の後に置いてください。--rm は YAML に含まれません。Compose の実行・削除方法を別途選択してください。-d/--detach は起動オプションです。必要に応じて docker compose up -d を使ってください。

  5. 05

    YAML をコピーまたはダウンロードする

    env_file は raw 形式(Compose 2.30+)でドル記号と引用符を保持します。相対パスは compose.yaml の場所が基準です。ファイルの内容や未設定の変数は検査しないため、実際の環境を確認してください。名前付きボリュームとカスタムネットワークは元の名前で外部参照します。起動前に存在する必要があります。ここではリソースを作成・検査しません。

ツールの概要

処理
ブラウザー内で完結
入力の外部送信
なし
保存
一切保存しません
価格
無料

入力はブラウザに留まります。

Docker Run から Compose 変換 は検証済みのローカル実行パスを使用し、隠れた入力・出力履歴を作成しません。

ローカル実行

現在のブラウザタブ内で実行されます。

隠れた処理なし

使用中のツールデータが Toolars のドキュメントレコードになることはありません。

アカウント不要

プロフィールを作成せずにコアワークフローを使えます。お気に入りはログイン後にアカウントへ同期されます。

即時リセット

タブを閉じれば、作業中のデータは消えます。

Docker Run から Compose 変換 が実際に行うこと

同僚のデプロイメモは長い一行の docker run — docker run -d --name web -p 8080:80 -e NODE_ENV=production -v /srv/data:/data:ro --restart unless-stopped nginx:1.27-alpine — で、プロジェクトの標準は Compose です。フォーラムの回答には必要なオプションがそろっていますが YAML ではありません。レガシースクリプトのコンテナーオプションはバージョン管理へ移す前に監査が必要です。その行を貼ると、ポートマッピング、環境、読み取り専用ボリューム、再起動ポリシーが確認用に並んだ web サービスが得られ、-d は捨てられるのではなくライフサイクル専用として示されます。この変換ツールは、デーモンやレジストリ、Docker そのものに接続せず、ブラウザー上でコマンドを確認可能な一つのサービスに変えます。

よくある質問

docker run のどのオプションが変換されますか?
未知のオプションでは変換を停止します。未対応または競合するマウントです。-v は source:/target[:ro|rw] または /target に対応します。--mount は type=bind|volume、source/src、target/destination/dst、readonly/ro=true|false、ボリューム用の volume-nocopy=true|false に対応します。他のフィールドと重複する対象は拒否します。
--rm と -d が未対応なのはなぜですか?
--rm は YAML に含まれません。Compose の実行・削除方法を別途選択してください。-d/--detach は起動オプションです。
Compose サービスの名前はどう決まりますか?
サービス名は --name があればそこから、なければレジストリのパスとタグを除いたイメージ参照から取られます。registry.example.com/team/nginx:1.27 は nginx になります。小文字、数字、アンダースコア、ハイフン以外の文字はハイフンにまとめられ、結果が空なら app にフォールバックします。container_name は --name が明示された場合にのみ出力されます。
イメージの後の引数はどうなりますか?
イメージ名の後の引数は順序と空文字列を保って command リストになります。
生成された YAML は本番で使えますか?
入力は UTF-8 で最大 64 KiB。起動前に存在する必要があります。ここではリソースを作成・検査しません。
コマンドはどこかに送信されますか?
いいえ。解析と変換は現在のブラウザータブ内だけで行われ、コマンドが送信・保存されることはなく、アカウントも不要です。

行き止まりではなく、関連タスクへ。

完全な索引に戻らずに、別のフォーカスされたワークスペースへ移動できます。

URL 作業ツール

URL Workbench

署名付きリンクを保護して URL 一覧を整理。変更理由を行ごとに表示し、構成比較と Sitemap 出力に対応。

編集

JSON 検索と展開

JSON Explorer

JSONPath で検索・抽出し、JSON Pointer 形式を復元。大きな数値の精度を保持。

確認

JSON Schema 検証

JSON Schema Validator

Draft 7 と 2020-12 をローカル検証。エラー位置を示し、複数サンプルからスキーマを推定。

確認

HTML 公開用整理

HTML Publishing

貼り付けた HTML を公開用に整理。リスト・リンク・表の意味を保持し、安全にプレビュー。

公開