整体步骤:
1、一般服务器都是linux,多人使用,所以我们一般在服务器上利用docker创建虚拟环境。
(1)首先找一个装好了服务器gpu驱动的镜像,用该镜像在服务器创建一个新容器,并且把该镜像打成tar包,下载到本地。
(2)利用下载好的镜像tar包,创建一个容器,为了保持和服务器的系统一致。
(3)然后当前的容器环境是可以连接网络的,所以我们下载anaconda,并安装,然后利用conda创建python虚拟环境。
(4)在python虚拟环境中在线安装自己项目所需要的包。
(5)将做好的环境进行conda pack,就是把做好的环境打包。
(6)将刚才打包好的python虚拟环境包,上传服务器到刚才创建的容器所挂在的目录,这样在容器中就可以访问当前目录数据了。并上传刚才在本地安装的anaconda安装包到该目录
(7)在docker容器中安装刚才上传的anaconda,利用conda导入刚才上传的python虚拟环境包,
(8)将导入的环境包放到anaconda的环境目录下,就完成了所有的步骤。
(9)在服务器的docker容器中,利用anaconda启动刚才导入的虚拟环境,就可以跑模型了。
2、具体细节:
(1)打包服务器镜像。
docker save -o 路径/输出的包名 repository:Tag
(2)在服务器利用刚才的镜像包创建容器
docker run -itd -e NVIDIA_VISIBLE_DEVICES=all,NVIDIA_DRIVER_CAPABILITIES=compute --name=容器名 --runtime=nvidia -v 宿主机路径:/temp -p 9900:9900(这两个端口号可以自己写) 镜像名:tag /bin/bash
(3)在本地docker利用下载的镜像包创建容器
docker run -itd --name=容器名 -v 宿主机路径:/temp -p 9900:9900(这两个端口号可以自己写) 镜像名:tag /bin/bash
(因为服务器的gpu和本地不同,而且本地不需要gpu,就可以创建环境)
(4)在本地进入刚才创建的容器,并安装anaconda
docker exec -it 容器名 /bin/bash
安装anaconda,就是直接找打安装包,即刚才创建容器时所挂在的路径,在/temp就可以看到挂在的本地路径,把anaconda安装包放在这个目录下,在容器的/temp下就可以看到,安装了。具体安装方法和设置环境变量看我的另一篇。anaconda安装和配置环境变量
(5)利用anaconda创建虚拟环境
conda create -n 虚拟环境名字 python=3.7(自选版本)
(6)安装项目需要的包,并打包虚拟环境
安装需要的包,根据需求进行安装,本文不再赘述,以下命令为打包刚才的虚拟环境
#1、安装打包工具 conda install -c conda-forge conda-pack 2、打包环境 conda pack -n 虚拟环境名 -o 包名 3、例如我的虚拟环境为py37,包名为py37.tar.gz conda pack -n py37 -o py37.tar.gz
(7) 将上一步打包的虚拟环境包上传服务器的docker容器挂在目录,进行解压虚拟环境
1、首先得在服务器的docker容器中上传anaconda安装包进行安装,和上文描述方法一样,不在赘述。 2、在anaconda的虚拟环境路径下,创建要导入到虚拟环境名字的文件夹 mkdir anaconda安装路径/envs/虚拟环境名 3、例如我的py37虚拟环境的安装 mkdir /root/anaconda3/envs/py37 4、解压虚拟包 tar -xzf 虚拟环境的压缩包 -C anaconda的安装路径/envs/虚拟环境名 5、例如我的 tar -xzf py37.tar.gz -Z /root/anaconda3/envs/py37
(8)查看是否安装成功虚拟环境
conda info --envs
完成



