docker run to docker-compose Converter
docker runコマンドを、docker-compose.yml形式のサービス定義へ変換します。
概要
手元で実行している、または手順書に書かれているdocker runコマンドを解析し、対応するdocker-compose.yml形式のサービス定義(YAML)へ変換するツールです。
--name(コンテナ名)・-p(ポート公開)・-e(環境変数)・-v(ボリューム)・-w(作業ディレクトリ)・--restart(再起動ポリシー)に対応しています。
--nameが指定されていない場合は、イメージ名からサービス名を推測します。
使い方
- 1
docker runコマンドを入力欄に貼り付けます。
- 2
「変換する」ボタンをクリックします。
- 3
対応するdocker-compose.ymlのサービス定義が表示されます。
入力例・出力例
入力
docker run -d --name web -p 8080:80 -e ENV=production nginx:latest
出力
services:
web:
image: nginx:latest
container_name: web
ports:
- 8080:80
environment:
- ENV=production
利用シーン
手作業で実行していたdocker runコマンドを、docker-compose.ymlへ移行する
READMEやブログ記事のセットアップ手順(docker run例)をCompose形式に書き換える
複数のdocker runコマンドを、1つのdocker-compose.ymlにまとめる準備をする
よくある質問
サービス名はどのように決まりますか?
--nameが指定されていればその値、なければイメージ名(タグやレジストリのホスト部分を除いた末尾部分)から推測します。
対応していないdocker runオプションはありますか?
はい。--network・--link・ヘルスチェック関連など、高度なオプションには対応していません。基本的なオプションの変換を想定しています。
複数のdocker runコマンドを1つのファイルにまとめられますか?
いいえ。本ツールは1つのdocker runコマンドを1つのサービス定義へ変換します。複数サービスをまとめる場合は、出力結果を手動で1つのファイルへ統合してください。
注意点
生成されるYAMLには`version`キーを含めていません。Compose Specification準拠の最近のDocker Composeでは省略が推奨されています。
出力結果は基本的な変換のみを行います。実際の運用では、ネットワークやヘルスチェックなどの設定を追加で見直してください。
関連ツール
curlコマンドを、JavaScriptのfetch()コードへ変換します。
YAMLを整形(フォーマット)して見やすく表示します。
.env形式のテキストの構文・重複キーを検証(バリデーション)します。