本篇博客主要介绍了docker的配置,以及利用Pycharm作为开发平台连接远程服务器进行开发,在中途遇到了一些问题,作为记录且方便有同样问题的同学进行参考。
docker的安装及开放
首先在ubuntu上安装docker,命令如下:
curl -fsSL https://get.docker.com |bash -s docker --mirror Aliyun
由于服务器上已预先安装好docker,在此不详述,具体可查docker菜鸟教程。安装完毕后,我们就可以创建自己所需要的镜像。
服务器上安装好docker后,我们需要进行远程连接,有两种方法:开放端口和ssh连接。这里开启了docker 2375端口进行连接,步骤可见docker-2-远程,ssh连接步骤可见该文章。如果使用ssh进行连接,需要手动地开启容器,相对而言,开放端口让pycharm连接,则省去了这一手动环节,只需要将镜像告诉给pycharm,它便会在运行程序前自动创建一个容器。
docker在Pycharm上的部署
完成以上步骤后,就可以在pycharm上进行配置连接了。
- 打开pycharm设置 该步完成后,我们就完成了对docker的连接。
- 接下来需要对python的服务器进行配置。
顺利的话,我们就可以看到解释器所包含的package了,需要注意的时,我们并不能在pycharm中手动安装包,这一点之后会再次提到。
在设置好解释器后,可能会发生pycharm无法加载远程服务器包的情况,代码中的包可能也会有红色波浪线,但仍然可以正常运行,这可能是因为服务器的镜像与pycharm版本不兼容的原因,后者无法更新skeletons。
- 然后我们需要进行文件同步设置 打开Tools -> Deployment -> Configuration
- 运行配置 最后我们设置运行py文件。 首先将文件上传到服务器:Deployment -> Upload 然后Run -> Edit Configuration
然后点开dockercontainer setting,设置host(服务器主机)和container(容器)的映射。
设置完成后,点击运行,就可以看到运行结果。为了方便,可以设置保存本地文件时自动上传到服务器项目中,
docker环境安装和使用gpu的问题
然而在使用docker的过程中,仍然遇到了问题:
- 在docker的容器中安装包,却无法在pycharm中更新。
- docker默认不使用gpu。
针对于第一个问题,我了解到Pycharm对docker环境解释器的加载只和镜像有关,与容器没有关系,只要提供镜像,镜像里的环境就能加载,手动创建的容器其实并不能影响镜像环境。
因此,这会导致一个问题,当我们需要在已有的镜像中安装新的package时,直接在容器中添加,对于Pycharm的解释器是没有用的,并不能影响当前的环境。因此,我们需要手动将添加包,修改后的容器保存为新的镜像,重新添加Python解释器,这样Pycharm才能加载到新的环境。
针对于第二个问题,pycharm在运行程序时,会自动创建一个容器并在结束时停止该容器。但docker的容器其实是默认不使用gpu资源的,gpu在容器中也是不可见的状态。我们可以在docker run命令中加上"–gpus all"或"runtime=nvidia",这样就可以在容器中查找到gpu的信息了。
这样我们就可以手动开启一个能使用gpu的容器。
为了能够让Pycharm也能够自动创建一个可以使用gpu的容器,我们需要在设置中添加参数:
这样,我们就可以使用gpu来计算了。
参考文章
Docker-3-Pycharm
Pycahrm中添加docker解释器
docker容器获取gpu的全部计算资源
版权归原作者 生命吹起轻叹 所有, 如有侵权,请联系我们删除。