好的!既然你不想使用 Dockerfile,我們就完全不寫 Dockerfile,改用你 Leader 提到的思路:
用基礎鏡像啟動一個容器 → 手動在容器里安裝依賴和復制項目 → 保存為新鏡像
這個方式更直觀,就像“你進入容器自己配置環境,然后打包成成品”。以下是最詳細的從零到部署的手動流程,確保你能在 Windows 上成功構建適用于 CentOS 服務器的 Docker 鏡像。
? 最終目標
你將在 Windows 上操作:
- 拉取一個合適的基礎鏡像(帶 CUDA 11.8)
- 創建容器并進入
- 安裝 Python 3.10
- 拷貝 roop 項目進去
- 安裝 requirements.txt
- 測試沒問題后,保存為鏡像
- 把這個鏡像導出、上傳到服務器(CentOS),運行
🧱 第一步:準備工作
確保你本地已安裝:
- Docker Desktop
roop
項目完整目錄,包括requirements.txt
和api.py
🚀 第二步:拉基礎鏡像(含 CUDA 11.8)
我們用 NVIDIA 官方 CUDA 鏡像(Ubuntu 基礎,兼容性好):
docker pull nvidia/cuda:11.8.0-runtime-ubuntu20.04
確認下載成功:
docker images
🛠? 第三步:啟動臨時容器 + 進入
docker run -it --gpus all --name roop-builder nvidia/cuda:11.8.0-runtime-ubuntu20.04 bash
你現在就在一個容器里了。
🔧 第四步:容器內安裝 Python 3.10(用 pyenv,穩定)
在容器內執行以下命令:
apt update && apt install -y \curl git build-essential libssl-dev zlib1g-dev libbz2-dev \libreadline-dev libsqlite3-dev wget llvm libncurses5-dev \libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev# 安裝 pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"# 安裝 Python 3.10
pyenv install 3.10.13
pyenv global 3.10.13# 驗證
python --version
pip install --upgrade pip
📁 第五步:拷貝 roop 項目進容器(在 Windows 上操作)
打開另一個終端(不關閉當前容器),執行:
docker cp C:\Your\Roop\Project\Path roop-builder:/app
例如:
docker cp C:\Users\you\roop roop-builder:/app
📦 第六步:容器里安裝依賴(仍在容器內)
cd /app
pip install -r requirements.txt
? 第七步:測試運行你的項目
python api.py
如果一切正常,說明容器配置好了。
📦 第八步:保存為新鏡像
- 退出容器(不要用
exit
,先停一下):
CTRL + P + Q # 組合鍵,掛起容器
- 保存容器為鏡像:
docker commit roop-builder roop-image:v1
- 導出鏡像為 tar 文件:
docker save -o roop-image-v1.tar roop-image:v1
📤 第九步:上傳鏡像到服務器 + 運行
將 roop-image-v1.tar
通過 scp 或 xftp 傳到服務器上:
scp roop-image-v1.tar user@server-ip:/home/user/
然后在服務器上執行:
docker load -i roop-image-v1.tar
docker run -it --gpus all -p 7860:7860 roop-image:v1 bash
(根據你項目監聽的端口調整 -p
)
? 總結
步驟 | 內容 |
---|---|
? 拉基礎鏡像 | nvidia/cuda:11.8.0-runtime-ubuntu20.04 |
? 進入容器 | 用 docker run -it 啟動容器 |
? 安裝 Python 3.10 | 用 pyenv |
? 拷貝項目 | docker cp |
? 安裝依賴 | pip install -r requirements.txt |
? 保存鏡像 | docker commit + docker save |
? 部署服務器 | scp + docker load |
你只要按步驟操作,不用寫一行 Dockerfile,也能打包成部署鏡像。需要我為你打包這些命令成 .bat
腳本或自動化腳本嗎?我也可以幫你 ?