使用步驟
- 在左側貼上 Compose 檔案,或點「載入示例」。
- 右側為每個服務生成一條 docker run 命令,按檔案中的順序排列。
- 檢查黃色提示裡沒有轉換的欄位(如 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 連線一個網路,其餘網路需要之後用 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 網路名。
資料會上傳嗎?
不會。解析和轉換都在瀏覽器中完成。
隱私說明
本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。