使い方
- 左側に docker run コマンドを貼り付けます。末尾のバックスラッシュを含む複数行や、改行・セミコロン・&& で区切った複数コマンドに対応します。
- 右側に Compose ファイルが表示されます。各コマンドは --name の名前、なければイメージ名をサービス名にします。
- 変換されなかった内容の黄色い注記を確認し、compose.yaml をコピーまたはダウンロードして docker compose up -d を実行します。
オプションの説明
- 対応するフラグ
- -p、-v、--mount、-e、--env-file、--name、--restart、--network、-w、-u、-h、--entrypoint、-l、--add-host、--dns、--cap-add/drop、--device、-m、--cpus、--shm-size、--ulimit、--log-driver/--log-opt、--health-*、-i、-t、--privileged、--init、--read-only などに対応します。
- 名前付きボリュームとネットワーク
- pgdata:/data のような名前付きボリュームはトップレベルの volumes に宣言します。カスタムネットワークは external true として宣言し、既存のネットワークを使います。host と none は network_mode になります。
- ポート
- ポートの対応付けは常に引用符付きになります。YAML 1.1 は 22:22 のような値を 60 進数として読むため、Docker のドキュメントもポートを文字列で書くよう勧めています。
- 無視されるフラグ
- -d と --rm には Compose で対応する設定がないため削除します。--gpus など未対応のフラグは注記に表示します。
例
docker run -d --name web --restart unless-stopped -p 8080:80 \
-v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27
次のように変換されます。
services:
web:
image: nginx:1.27
container_name: web
restart: unless-stopped
mem_limit: 512m
ports:
- "8080:80"
environment:
- TZ=Asia/Shanghai
volumes:
- ./html:/usr/share/nginx/html:ro
よくある質問
version 行は必要ですか?
いいえ。現在の Docker Compose v2 はトップレベルの version フィールドを使わず、あっても警告を出して無視します。
環境変数のパスワードはアップロードされますか?
いいえ。解析と変換はブラウザ内で行われ、サーバーには送信されません。
引用符付きの引数に対応していますか?
はい。シングルクォート、ダブルクォート、バックスラッシュのエスケープはシェルの規則に従うため、-e "MSG=hello world" の値全体が保持されます。
プライバシー
このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。