没有网络的服务器上,部署自己的python项目
因为本人搞了好长时间,网上也没有详细的教程,因此记录分享一下。
在自己电脑构建docker项目镜像
网络上有很多关于windows下怎么安装docker的教程,这里就不在写了,可以在csdn上直接搜windows下安装docker等关键词。注意可以改一下镜像保存的位置,这个应用的右上角有个设置。

docker pull 镜像名称
拉取下来之后,你的应用中应该会出现对应的镜像文件 3. 之后可以用你自己决定好用的编程软件打开你自己的项目,在项目里面根据自己需要的依赖创建对应的requirements.txt,然后创建一Dockerfile 4. 编写Dockerfile文件内容,在这里我的项目需要cuda因此直接网上找别人的这个镜像拿来用了,里面包含了cuda和python等依赖。
# 基础镜像选择Python版本
FROM pytorch/pytorch:2.7.0–cuda12.6–cudnn9–devel
# 设置工作目录
WORKDIR /app
# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install ––no–cache–dir –r requirements.txt –i https://mirrors.aliyun.com/pypi/simple/
#保证容器可以在启动后不中断
CMD ["tail", "-f", "/dev/null"]
docker build -t 你构建的镜像名称 .
docker save -o 压缩包名字.tar 要打包的镜像名称
在服务器上部署docker项目
# 在服务器上加载镜像
docker load -i 压缩包名字.tar
通过下面的命令你可以看到你加载的镜像名称:
docker images
完成之后你可以将你之前打包好的.tar删除了。
项目文件先不放在docker容器中,只放依赖,通过挂载将文件挂载上去。你只需要将你的项目文件放到你服务器里面就可以了,假如当前你的项目路径为:/home/test/qwen_qlora_main
挂载方式(只有在docker run的时候需要挂载,之后docker exec不用再执行挂载的这些命令,这些属性已经在你的docker容器中了,就算停止这个容器还是一直保存有的,除非你把容器删除了):
docker run -it –name 容器名称(自己命名) –gpus all –net=host -v /home/test/qwen_qlora_main:/app 你第1步加载的镜像名称 /bin/bash
docker cp [容器ID或容器名称]:[容器内文件路径] [本地目标路径]
CUDA_VISIBLE_DEVICES=1 /usr/bin/nohup python evaluating/train_false_data_gen.py > test.log 2>&1 &
之后使用exec进入docker容器
VS Code 从容器界面退出但保持容器后台运行
docker start 容器id
之后
docker exec -it 容器id /bin/bash
docker exec -it 容器id /bin/bash
即可进入容器 4. 使用docker exec进入容器,你使用exit将不会停止容器,而且你可以正常退出容器。
服务器删除docker
docker stop 容器id
docker rm 容器id
docker rmi 镜像id
本地windows删除docker镜像和容器
因为我们本地用docker只是构建的项目镜像,没有牵扯到容器创建,因此我们只需要删除我们创建的镜像即可。
之后以管理员的身份启动命令提示符,输入diskpart
找到你docker镜像存储的位置,就在文章开头设置的那一块,按照我文章开头的那个位置,具体这个镜像存储的地方为:E:\\docker\\DockerDesktopWSL\\disk\\docker_data.vhdx。 执行下面的命令
select vdisk file="E:\\docker\\DockerDesktopWSL\\disk\\docker_data.vhdx"
4. 截止执行压缩命令:
compact vdisk
detach vdisk
执行完上述命令在去查看你存储该镜像的磁盘,内存应该是释放了的。
评论前必须登录!
注册