Linux|docker 环境连接pycharm

  1. 在pull完镜像后,运行容器,并进行端口映射。
sudo docker run --runtime=nvidia -p 23:22(pycharm环境) -p 5009:6006(tensorboard)  -p 9999:8888(jupyter) -it ufoym/deepo bash

在上文中,可以按需选取端口映射,并且要检查在系统中是否已经有人使用了这个端口。随后进入docker镜像,进入的方法在docker的使用中已写,如下图所示。

sudo docker exec -it containerID /bin/bash
例如:sudo docker exec -it 95bd815d9e /bin/bash,就可以在容器中搞事情了。
  1. 在apt-get update


    源更新.png
  2. apt-get install openssh-server


    openssh更新.png
  3. vim /etc/ssh/sshd_config
    把PermitRootLogin prohibit-passwd 改为 PermitRootLogin yes

    修改配置.png

    用‘/PermitRootLogin’ 指令找到该行

  4. 退出编辑后输入 passwd 命令修改密码
    (该密码在后期选择编译器时会用到)

  5. Pycharm中创建项目

  6. File->New project-> Pure Python -> 点开project interpreter
    选择远端的服务器和远程项目的位置(为了方便起见,此时项目文件夹应该已经用sudo docker cp的方式复制进去了)

    创建空项目.png

  7. project setting->Project Interpreter

    编译器和路径映射.png

    点击上图中Path mapping右侧的文件夹符号,会出现下图配置好当前文件夹和服务器上的文件夹位置。
    路径映射.png

  8. 代码同步工作


    配置同步.png

可在后面选择sftp服务器

sftp服务器配置.png

上图的红框里有个坑,如果点击了autodetect会变成\root目录,在后面Mapping中填入Deployment path会变成从root目录下去找,如果代码目录是在root外面的话,则会出现找不到目录的情况。
代码同步目录.png

右击项目,然后找到Deployment选项中的Download from

同步代码.png

彩蛋

由于我是第一次进入容器,所以退出后,再通过restart命令重启容器的时候,里面的ssh服务已经关闭,需要通过指令sudo /etc/init.d/ssh start 进行重启才能正常使用。
彩蛋2
发现已经映射了本地和服务器上的文件,但是当运行的时候确实跑的本地的代码。那么这时候,是因为建立了太多的本地和服务器的映射,所以要删掉一些编译器的配置,而且只保留一个映射。
在此,可以在setting中删掉当前的编译器,然后再新建编译器时,会推荐使用在Deployment的sftp中配置好的环境,直接使用推荐的环境能够解决这个问题。

你可能感兴趣的:(Linux|docker 环境连接pycharm)