问题
- 每一个服务的运行环境不同
安装的软件数量和版本不同,频繁的搭建本地工作环境,肯定十分麻烦,可以借助docker搭建环境
我需要的项目环境
- 可能需要更换tensorflow版本/keras版本/python版本
- 可能需要安装一些比较少见的库
- 刚拉取的镜像可能需要更新部分底层库
- 需要用到GPU
本地开发,上传到远程服务器,在远程服务器搭建的docker内执行
- 在本地,使用Pycharm自带的功能可以实现代码的自动上传,传送到服务器,在本地制作开发,执行命令都在远程docker内
- 在docker内搭建好自己需要的环境
- 在服务器端,启动容器的时候使用
-v
命令实现共享卷,这样自动上传到服务器的代码可以自动共享到docker内(在docker内的文件修改也会修改服务器上的文件,但是尽量不要这么操作) - 在启动容器的时候带上
--runtime=nvidia
就可以使用服务器上的GPU了,具体命令如下
sudo docker run --runtime=nvidia -it --name "human-segmentation" -v 服务器中项目路径:映射到docker中的路径 tensorflow/tensorflow:1.13.1-gpu-py3 /bin/bash
优势
-
环境部署相当迅速,十分灵活
-
不用破坏本地环境
-
在多人公用服务器的时候不会因为操作了环境变量而打扰到别人
-
加快了开发效率
-
增加和删除环境十分方便(使用anaconda搭建一个本地环境可能需要好几个G,这是我之前用的套路)
劣势
- 受网络影响严重,网络不行,远程开发会受到很大的打击,而且没有本地环境
这是我自己摸索出来的开发套路,真实可行!
- 如果你操作有问题,请留言