コンテンツへスキップ
docker run to docker-compose Converter
docker runコマンドを、docker-compose.yml形式のサービス定義へ変換します。
概要
- 手元で実行している、または手順書に書かれているdocker runコマンドを解析し、対応するdocker-compose.yml形式のサービス定義(YAML)へ変換するツールです。
- --name(コンテナ名)・-p(ポート公開)・-e(環境変数)・-v(ボリューム)・-w(作業ディレクトリ)・--restart(再起動ポリシー)に対応しています。
- --nameが指定されていない場合は、イメージ名からサービス名を推測します。
使い方
- docker runコマンドを入力欄に貼り付けます。
- 「変換する」ボタンをクリックします。
- 対応する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では省略が推奨されています。
- 出力結果は基本的な変換のみを行います。実際の運用では、ネットワークやヘルスチェックなどの設定を追加で見直してください。