- 在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,就可以在容器中搞事情了。
-
在apt-get update
-
apt-get install openssh-server
-
vim /etc/ssh/sshd_config
把PermitRootLogin prohibit-passwd 改为 PermitRootLogin yes
用‘/PermitRootLogin’ 指令找到该行 退出编辑后输入 passwd 命令修改密码
(该密码在后期选择编译器时会用到)Pycharm中创建项目
-
File->New project-> Pure Python -> 点开project interpreter
选择远端的服务器和远程项目的位置(为了方便起见,此时项目文件夹应该已经用sudo docker cp的方式复制进去了)
-
project setting->Project Interpreter
点击上图中Path mapping
右侧的文件夹符号,会出现下图配置好当前文件夹和服务器上的文件夹位置。
-
代码同步工作
可在后面选择sftp服务器
上图的红框里有个坑,如果点击了
autodetect
会变成\root
目录,在后面Mapping中填入Deployment path
会变成从root
目录下去找,如果代码目录是在root
外面的话,则会出现找不到目录的情况。右击项目,然后找到Deployment
选项中的Download from
彩蛋
由于我是第一次进入容器,所以退出后,再通过restart命令重启容器的时候,里面的ssh服务已经关闭,需要通过指令sudo /etc/init.d/ssh start
进行重启才能正常使用。
彩蛋2
发现已经映射了本地和服务器上的文件,但是当运行的时候确实跑的本地的代码。那么这时候,是因为建立了太多的本地和服务器的映射,所以要删掉一些编译器的配置,而且只保留一个映射。
在此,可以在setting
中删掉当前的编译器,然后再新建编译器时,会推荐使用在Deployment的sftp
中配置好的环境,直接使用推荐的环境能够解决这个问题。