【小白日记】本地环境移到服务器上(docker+conda)

嚴華  论坛元老 | 2024-10-14 22:56:28 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1045|帖子 1045|积分 3135

题目描述:本地anaconda配好了某代码所需环境,需要把代码放到服务器上跑。
计谋:服务器上已有docker(和nvidia-docker),考虑将本地环境设置为镜像,上传到服务器后加载镜像,用容器跑代码
省流:不可避免地重新“配了一遍环境”(安装相应的包)
【终极成功的流程】


  • 0-预备requirements.txt

    • pip freeze > requirements.txt 从本地相应的anaconda环境中导出requirements.txt备用

  • 1-从云端拉取含anaconda的镜像

    • 更常见的情况是首先下载含对应版本pytorch的镜像,用来跑深度学习代码,参考:【10分钟学会Docker的安装和使用_docker安装-CSDN博客】【5 DIY一个本身的pytorch镜像】
    • docker pull continuumio/anaconda3

      • 我用 docker search 实在没有搜到,但【(本人自用)将本地的anaconda环境封装到docker中并导出为压缩包_anaconda3环境迁移到docker-CSDN博客】和【学习记录:docker 下摆设anaconda - 知乎 (zhihu.com)】里给出的都是这个镜像,最后我也pull成功了


  • 2-在含anaconda的镜像上构建容器

    • docker images 查看当前有哪些镜像
    • docker run --name test240912 -idt continuumio/anaconda3 构建名为test240912的容器

  • 3-进入容器,在容器中创建指定python版本的假造环境

    • docker ps查看当前正在运行的容器,docker ps -a查看所有容器(包罗没在运行的)
    • docker exec -it test240912 /bin/bash 进入容器test240912,下令行控制(bash)
    • 进入容器后可以用conda env list查看conda设置是否正确,输出“base”环境即为正常
    • conda create --name my_new_env python=3.8 创建一个python版本3.8的假造环境,名为my_new_env
    • conda activate my_new_env 激活my_new_env环境
    • 参考事先预备的requirements.txt,pip install {包名} 或 conda install {包名}

      • 为什么不直接pip install -r requirements.txt?因为我没成功
      • 假如想尝试直接pip install 所有包,需要先将requirements.txt复制到容器中
      • docker cp /path/to/local/requirements.txt test240912:/path/to/where/you/like


  • 4-在容器中配好环境后,将容器生存为新的镜像

    • docker commit -m=‘对镜像的描述’ -a=‘作者’ {当前容器名} {新镜像的命名}
    • 比方 docker commit -m=‘对镜像的描述’ -a=‘作者’ test240912 new_image:v1

  • 5-将镜像生存为tar文件

    • docker save new_image:v1 -o new_image.tar

  • 6-将tar文件传到服务器上,并加载为镜像

    • docker load -i new_image.tar

  • 7-在服务器上使用docker镜像

    • nvidia-docker run --gpus all -idt -v /path/to/local/dir:/path/to/dir/in/container --name container-on-server new_image:v1 创建容器,-v实现本地和容器中的文件通讯(同步)

      • 要用nvidia-docker下令,不要用docker下令,否则无法正常使用GPU

    • nvidia-docker exec -it container-on-server /bin/bash 进入容器
    • 进入容器后,conda activate 相应环境,竣事


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表