本文へスキップ
ToolMug

Docker Compose から docker run への変換

compose.yaml または docker-compose.yml を貼り付けると、各サービスに対応する docker run コマンドを取得できます。Compose を使えないマシンでコンテナを起動したり、サービスがどのように起動するかを確認したりするのに便利です。

ブラウザ内で動作 — 入力した内容はアップロードされません

Docker Compose → docker run
Docker Compose
docker run

使い方

  1. 左側に Compose ファイルを貼り付けるか、「サンプルを読み込む」をクリックします。
  2. 右側にファイルの順序どおり、サービスごとの docker run コマンドが表示されます。
  3. build、deploy、depends_on など変換されなかった項目の黄色い注記を確認してから、コマンドをコピーします。

オプションの説明

対応する項目
image、container_name、command、entrypoint、ports、短縮・長形式の volumes、environment、env_file、networks、network_mode、restart、user、working_dir、labels、logging、ulimits、healthcheck、リソース制限などに対応します。
変換されない項目
build、deploy、depends_on、secrets、configs など Compose 専用の項目は注記に表示されます。image のないサービスには仮のイメージ名が入るので、先に自分でビルドしてください。
複数のネットワーク
docker run が --network で参加できるのは 1 つだけです。残りは後から docker network connect で接続してください。

例

次のようなサービスは、

services:
  web:
    image: nginx:1.27
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
      - data:/var/cache/nginx
    environment:
      TZ: UTC
    restart: unless-stopped
    depends_on: [db]

次のようになります。

docker run -d \
  --name web \
  -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro \
  -v data:/var/cache/nginx \
  -e TZ=UTC \
  --restart unless-stopped \
  nginx:1.27

depends_on に相当する docker run のオプションはないため、代わりに注記に表示されます。参照先のサービスは、正しい順序で自分で起動してください。相対パスの ./html は、コマンドを実行するディレクトリを基準に解決されるので、そのディレクトリがあるフォルダーで実行します。

よくある質問

すべてのコマンドに -d が入るのはなぜですか?

Compose は通常、docker compose up -d のようにサービスをバックグラウンドで動かすため、コマンドも同じ動作になります。前面で出力を見るには -d を削除してください。

名前付きボリュームやネットワークは先に作成する必要がありますか?

docker run は不足している名前付きボリュームを自動作成しますが、カスタムネットワークは先に docker network create <name> で作成する必要があります。

ファイルはアップロードされますか?

いいえ。解析と変換はブラウザ内で行われます。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール