開發者 / Docker

docker run 轉 Docker Compose 轉換器

將 docker run 指令轉換成包含連接埠、磁碟區、環境變數、網路、重新啟動原則、健康檢查、GPU 等設定的 compose.yaml 檔案,也能將 Compose 服務轉回 docker run;沒有對應功能的選項會列出來。

docker run 轉 Docker Compose 轉換器: 這項工具會按照 Shell 的處理方式分割指令,解析引號與跳脫字元,並將各個選項對應到 Compose 的金鑰:-p 對應 ports、-v 和 --mount 對應 volumes、-e 對應 environment、--restart、--network、--health-cmd 對應 healthcheck、--gpus 對應裝置保留設定,另外還支援約40個選項。具名 volumes 和網路會取得各自的頂層項目。多個指令會在同一個檔案中轉換成多個服務。沒有 Compose 對應功能的選項會列出來,不會默默捨棄。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。

使用次數
在瀏覽器中
費用
免費・免註冊
可用狀態
可立即使用
docker run 轉換為Compose本機處理

全程在瀏覽器中執行

compose.yaml

services:
  db:
    image: postgres:16
    container_name: db
    environment:
      - POSTGRES_PASSWORD=change-me
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - 5432:5432
    restart: unless-stopped
volumes:
  pgdata:

轉換後

執行docker compose config來檢查檔案,並查看填入預設值後的內容;接著執行docker compose up -d來啟動。請固定映像檔版本,例如使用postgres:16而不是latest,避免重新啟動時意外升級資料庫。

若要以其他格式讀取檔案,請使用YAML轉JSON進行轉換;若要安排容器中的排程工作,cron說明可以解讀cron運算式。

磁碟區與資料

名為pgdata的磁碟區由Docker管理,執行docker compose down後仍會保留;像./data這樣的路徑則是主機上的資料夾。移除名為磁碟區前,請先備份;docker compose down -v會刪除它們。

使用方式

  1. 貼上一或多個 docker run 指令;使用反斜線換行也沒問題。
  2. 查看 compose.yaml,以及無法轉換的選項。
  3. 複製或下載結果,也可以切換方向,將 Compose 檔案轉成 docker run 指令。

隱私與限制

所有作業都在瀏覽器中執行;您的指令可能包含密碼,但不會上傳。

相關工具

常見問題

為什麼要使用 Compose,而不是 docker run?

Compose 檔案會將完整設定集中記錄在一個可讀取、可建立版本,並能透過 docker compose up 啟動的檔案中,不必依賴 Shell 歷史紀錄裡的長指令。此外,它也能同時啟動多個容器及其網路和 volumes。

--rm 和 -d 會怎麼處理?

Compose 沒有 --rm;容器會透過 docker compose down 移除。-d 是您執行 docker compose up -d 時選擇的,因此不會寫入檔案。

為什麼網路會標記為 external?

docker run --network 使用的是已存在的網路,因此轉換後的檔案會以相同方式參照該網路。如果希望由 Compose 自行建立網路,請移除 external: true。

應該把密碼保留在檔案中嗎?

密碼和金鑰建議使用不納入版本控制的 env_file,或使用 Docker secrets。轉換器會保留指令中的內容,因此提交檔案前請先檢查 environment 區段。

免費工具・使用在瀏覽器中次・免註冊