開發者 / 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 對應功能的選項會列出來,不會默默捨棄。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。
- 分類
- 開發者工具
- 使用次數
- 在瀏覽器中
- 費用
- 免費・免註冊
- 可用狀態
- 可立即使用
全程在瀏覽器中執行
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會刪除它們。
使用方式
- 貼上一或多個 docker run 指令;使用反斜線換行也沒問題。
- 查看 compose.yaml,以及無法轉換的選項。
- 複製或下載結果,也可以切換方向,將 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 區段。
免費工具・使用在瀏覽器中次・免註冊