Utilo

docker run ↔ Compose 轉換

把 docker run 指令轉換成 docker-compose / compose.yaml 服務,包括埠、環境變數、卷、網路、健康檢查和資源限制,也可以把 compose 服務轉回 docker run。

這個轉換器的作用

一個從快速實驗開始的 docker run 命令往往會增長:埠,音量,環境變數,網路,重啟策略。在某個時刻,它屬於compose.yaml。這個轉換器解析一個或多個 docker run 命令,併產生一個清潔的 Compose 檔案,每個命令有一個服務。它還可以逆向執行:貼上一個Compose檔案並獲取相應的docker run命令,這對於除錯單個服務或在沒有Compose的主機上執行它非常方便。解析發生在瀏覽器中。

使用方法

  1. 選擇 docker執行 → 編譯或 編譯 → docker執行。
  2. 貼上你的命令,每行一個。逆擊線的延續是好的,領先的sudo被忽略了。
  3. 檢查生成的YAML。命名的卷和自定義網路在頂層自動宣告。
  4. 閱讀沒有Compose等價的選項的註釋。
  5. 複製輸出,儲存為compose.yaml並執行docker compose up -d。

支援的選項

埠 (-p,--expose),環境 (-e,--env-file),體積和安裝 (-v,--mount,--tmpfs),網路 (--network,--network-alias,--ip,--hostname,--add-host,--dns,--link),重啟策略,使用者和工作目錄,入口點和命令,標籤,日誌驅動程式和選項,健康檢查 (--health-*),資源限制 (--memory,--cpus,--shm-size,--ulimit,--gpus),安全選項 (--privileged,--cap-add,--cap-drop,--security-opt,--read-only),裝置,sysctls,--init,--platform,--pull,-it等。

提示

  • 服務名稱來自 --name;如果沒有,則使用影象名稱。
  • --rm 和 -d 在 Compose 中沒有任何意義,並且被放下了音符。
  • 構建中的相對繫結 mounts 與構建檔案相對解決,而不是你的 shell 的目錄。使用./data式路徑。
  • 透過-e傳遞的秘密最終是純文字。考慮將它們轉移到.env檔案,並引用${VAR}。

常見問題

建立了哪個 Compose 版本?

輸出遵循Docker Compose v2所使用的當前Compose規範。已經過時的頂級version:金鑰被省略。

我可以同時轉換幾個容器嗎?

沒有。貼上多個 docker run 命令,每個命令都會成為同一檔案中的服務,

構建 → 執行支援構建部分嗎?

build:沒有 docker run 的等效,所以工具使用影象名稱並新增一個提示,

我的命令上傳了嗎?

沒有。轉換完全是在瀏覽器中完成的。

安全。所有處理都透過 JavaScript、Web Worker 和瀏覽器 API 在本地完成,你輸入、貼上或上傳的任何內容都不會傳送到我們的伺服器。

本頁內容由英文自動翻譯而來,如發現錯誤,歡迎告訴我們。