本篇博客主要介绍了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来计算了。
@显示gpu可用


参考文章

Docker-3-Pycharm
Pycahrm中添加docker解释器
docker容器获取gpu的全部计算资源

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐