docker不用dockerfile

06-01 1145阅读

好的!既然你不想使用 Dockerfile,我们就完全不写 Dockerfile,改用你 Leader 提到的思路:

用基础镜像启动一个容器 → 手动在容器里安装依赖和复制项目 → 保存为新镜像

这个方式更直观,就像“你进入容器自己配置环境,然后打包成成品”。以下是最详细的从零到部署的手动流程,确保你能在 Windows 上成功构建适用于 CentOS 服务器的 Docker 镜像。


✅ 最终目标

你将在 Windows 上操作:

  1. 拉取一个合适的基础镜像(带 CUDA 11.8)
  2. 创建容器并进入
  3. 安装 Python 3.10
  4. 拷贝 roop 项目进去
  5. 安装 requirements.txt
  6. 测试没问题后,保存为镜像
  7. 把这个镜像导出、上传到服务器(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
    

    如果一切正常,说明容器配置好了。


    📦 第八步:保存为新镜像

    1. 退出容器(不要用 exit,先停一下):
    CTRL + P + Q   # 组合键,挂起容器
    
    1. 保存容器为镜像:
    docker commit roop-builder roop-image:v1
    
    1. 导出镜像为 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 脚本或自动化脚本吗?我也可以帮你 ✅

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码