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ファイルからの逆変換には対応していません。
このページをシェア
