当前位置: 首页 > news >正文

docker不用dockerfile

好的!既然你不想使用 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.txtapi.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.10pyenv
✅ 拷贝项目docker cp
✅ 安装依赖pip install -r requirements.txt
✅ 保存镜像docker commit + docker save
✅ 部署服务器scp + docker load

你只要按步骤操作,不用写一行 Dockerfile,也能打包成部署镜像。需要我为你打包这些命令成 .bat 脚本或自动化脚本吗?我也可以帮你 ✅

http://www.xdnf.cn/news/732493.html

相关文章:

  • GSR 手环能耗数据实测:STM32 与 SD NAND 的功耗优化成果
  • 信息安全管理与评估2025山东卷
  • ONLYOFFICE深度解锁系列.4-OnlyOffice客户端原理-真的不支持多端同步
  • 使用 Kafka + Protobuf 实现高效的序列化通信
  • 【合集】Linux——31个普通信号
  • Eclipse集成lombok
  • 电子电路:VCC电源是什么?
  • 从图像处理到深度学习:直播美颜SDK的人脸美型算法详解
  • 初学c语言21(文件操作)
  • 小程序32-简易双向数据绑定
  • 千库/六图素材下载工具
  • redis内存数据库
  • 每处理器变量和每处理器计数器
  • 「Java教案」Java程序的构成
  • SAP Business One:无锡哲讯科技助力中小企业数字化转型的智慧之选
  • ImBatch 7.6.3 中文版 - 高效图片批量处理工具
  • 放假带出门的充电宝买哪种好用耐用?倍思超能充35W了解一下!
  • Vue Element tree lable组合展示
  • 2014药柜设计问题
  • 【Linux】深入解析:云服务器连接 XShell、Linux 目录结构和常用命令
  • Python中的异常处理:如何优雅地处理程序中的错误
  • 面试-【搜索引擎】
  • 历年厦门大学计算机保研上机真题
  • 基于原生JavaScript前端和 Flask 后端的Todo 应用
  • 西门子PLC的维修
  • 【C】位运算
  • 安全帽目标检测
  • 计算机模拟分子合成有哪些应用软件?
  • VMware使用时出现的问题,此文章会不断更新分享使用过程中会出现的问题
  • 级联的if else