本文へスキップ
にゃんこツール

docker run→docker-compose変換

docker run コマンドを貼り付けると、docker-compose.yml(Compose形式)に変換します。ポート・ボリューム・環境変数・コンテナ名・再起動ポリシーなどの主要オプションに対応し、名前付きボリュームやカスタムネットワークのトップレベル宣言も自動で追加します。変換できないオプションは警告として一覧表示します。生成したYAMLの整形は YAML整形 でも行えます。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

注意点

  • 対応しているのは -p / -v / -e / --env-file / --name / --restart / -w / -u / -h / --network / --entrypoint / -l / --cap-add / --cap-drop / --dns / --add-host / --device / --tmpfs / --expose / --link / -m / --cpus / --platform / --shm-size / --privileged / --init / --read-only / -i / -t などの主要オプションです。--rm・ヘルスチェック・ログ設定・--mount など、それ以外は警告として表示します。
  • 変換は docker run → Compose の一方向のみです。コマンドは実行されず、イメージの取得やコンテナの起動も行いません。
  • シェルの展開($(pwd) など)は実行できません。$(pwd)・$PWD はボリュームの相対パス「.」に置き換え、それ以外の「$」はそのまま出力します。
  • -e に含まれるパスワードやトークンも出力に含まれます。共有や公開の前にご確認ください(値は保存・送信されません)。
  • -d(バックグラウンド実行)は Compose では docker compose up -d で指定するため、出力には含めません。

用語解説

Docker Compose

複数のコンテナの構成をYAMLファイル(compose.yml / docker-compose.yml)に書いて、docker compose up で一括起動する仕組みです。docker runのオプションをファイルに残せるため、再現しやすくなります。

名前付きボリューム

-v pgdata:/var/lib/postgresql/data のように、パスではなく名前を指定するボリュームです。Composeではトップレベルの volumes: に宣言します。/ や . で始まる指定はバインドマウント(ホストのパス)です。

network_mode

docker run の --network host などに相当するComposeの設定です。独自ネットワーク名を指定した場合は networks: に書き、外部で作成済みのネットワークとして external: true を付けます。

よくある質問

どのdocker runオプションに対応していますか?

-p・-v・-e・--env-file・--name・--restart・-w・-u・--network・--entrypoint・--cap-add・--privileged・-i/-t など主要なものに対応しています。--rm・ヘルスチェック・ログ設定・--mount などは変換せず、警告として一覧表示します。

-v $(pwd):/app はどう変換されますか?

ブラウザ上ではシェルの展開を実行できないため、$(pwd)・$PWD・${PWD} を、compose.ymlからの相対パス「.」に置き換えます(例: ./data:/data)。docker compose はcompose.ymlのあるディレクトリを基準に解決します。

名前付きボリュームは自動で宣言されますか?

はい。-v pgdata:/data のようにパスではなく名前で指定したものは、トップレベルの volumes: に追加します。--network で独自のネットワーク名を指定した場合も networks: に external: true で宣言します。

環境変数の値が "true" や 3000 のとき、引用符は付きますか?

はい。YAMLでは true・no・数値などが文字列でなくなってしまうため、該当する値は二重引用符で囲んで出力します。restart: "no" も同様です。$ を含む値はComposeが変数展開するため、必要に応じて $$ と書いてください。

docker-compose.yml から docker run への逆変換はできますか?

このツールは docker run から Compose への一方向のみです。複数コンテナを含むComposeファイルからの逆変換には対応していません。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる