迁移rerank
想要查看 Docker 容器的完整啟動命令(包括 Entrypoint 和傳入的參數),有以下幾種主要方法:
1. 使用
docker ps --no-trunc這是最簡單、最直接的方法。默認情況下 docker ps 會截斷過長的命令,加上 --no-trunc 參數可以顯示完整內容。
docker ps --no-trunc
請謹慎使用程式碼。
在輸出中的 COMMAND 欄位即可看到完整的啟動指令。
2. 使用
docker inspect (精確查看)如果您想分別查看 Entrypoint(入口點)和 Cmd(啟動參數),可以使用 inspect 命令配合格式化輸出:
docker Community Forums +2
- 查看 Entrypoint:
bash
docker inspect --format='{{json .Config.Entrypoint}}' ea82a9897f13請謹慎使用程式碼。 - 查看啟動參數 (Cmd):
bash
docker inspect --format='{{json .Config.Cmd}}' ea82a9897f13請謹慎使用程式碼。 - 一次性查看完整路徑:
bash
docker inspect --format='{{range .Config.Entrypoint}}{{.}} {{end}}{{range .Config.Cmd}}{{.}} {{end}}' ea82a9897f13請謹慎使用程式碼。
3. 使用
runlike 工具 (還原啟動命令)如果您想獲取的是當初執行
docker run 時的完整語法(包括 -p 端口映射、-v 掛載、環境變量等),原生 Docker 並沒有直接提供「還原一整行 docker run」的命令。這時可以使用第三方工具 runlike:bash
# 通過 Docker 運行 runlike 來查看指定容器的啟動指令
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike ea82a9897f13
- 進入容器查看
server.py內容:bashdocker exec -it ea82a9897f13 cat /app/server.py # 假設代碼在 /app 目錄請謹慎使用程式碼。
請謹慎使用程式碼。
總結建議:
- 只想看容器內跑了什麼指令:用
docker ps --no-trunc。 - 需要精確的 JSON 數據:用
docker inspect。 - 想完全復制當初的
docker run指令:建議安裝使用 runlike。現在所有的拼圖都齊了!根據您提供的inspect信息,這個容器最核心的啟動配置如下: -
完整的
docker run重建命令如果您要在另一台機器(或本機)重新啟動一個一模一樣的容器,指令如下:bashdocker run -d \ --name rerank_new \ --gpus all \ -p 8000:8000 \ -v /data/models/bge-reranker-v2-m3:/opt/models/bge-reranker-v2-m3 \ -e NVIDIA_VISIBLE_DEVICES=all \ -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \ rerank-backup:latest \ uvicorn server:app --host 0.0.0.0 --port 8000請謹慎使用程式碼。
yxbinghe
既然你要遷移並在另一台機器啟動一個完全相同的容器,請按照以下三個步驟操作。
由於你的容器依賴宿主機外部模型文件(/data/models/bge-reranker-v2-m3),單純遷移鏡像是跑不起來的。
第一步:在「原機器」導出鏡像與數據
保存鏡像:
bash
docker save -o rerank_image.tar rerank-backup:latest
請謹慎使用程式碼。
打包模型數據(這是關鍵,因為你的容器是掛載運行的):
bash
tar -cvf rerank_models.tar /data/models/bge-reranker-v2-m3
請謹慎使用程式碼。
第二步:將文件傳輸到「新機器」
使用 scp 或隨身碟將這兩個 .tar 文件傳到新服務器:
bash
scp rerank_image.tar rerank_models.tar root@新機器IP:/root/
請謹慎使用程式碼。
第三步:在「新機器」部署並啟動
加載鏡像:
bash
docker load -i /root/rerank_image.tar
請謹慎使用程式碼。
還原模型數據(確保路徑與原機器一致):
bash
mkdir -p /data/models/
tar -xvf /root/rerank_models.tar -C /
請謹慎使用程式碼。
使用完整參數啟動容器(根據你之前的 inspect 結果還原):
bash
docker run -d \
–name rerank \
–gpus all \
-p 8000:8000 \
-v /data/models/bge-reranker-v2-m3:/opt/models/bge-reranker-v2-m3 \
–restart always \
rerank-backup:latest \
/opt/nvidia/nvidia_entrypoint.sh uvicorn server:app –host 0.0.0.0 –port 8000
請謹慎使用程式碼。
💡 遷移前的檢查清單:
GPU 驅動:新機器必須安裝好 NVIDIA Driver。
Docker 插件:新機器必須安裝 nvidia-container-toolkit,否則 –gpus all 會失效。
磁盤空間:模型文件通常很大(看路徑應該是 BGE 重排序模型),請確保 /data 分區空間足夠。
你需要我提供 NVIDIA Container Toolkit 的安裝指令,還是直接開始執行遷移?