在我们利用远程服务器部署的docker调试深度学习模型时,需要将代码传来传去,很不方便。这里我们介绍pycharm连接远程服务器docker的方法。
- 首先我们启动一个新的pytorch容器,命令如下。关于此步骤更详细的说明,参见ubuntu+docker使用nvidia显卡运行pytorch。6006端口是用来运行tensorboard的,这里重要的是 22端口 。如果希望通过ssh远程连接docker,需要对容器的 22端口 做端口映射。
nvidia-docker run -p 6009:6006 -p 23:22 -it -d --name="torch-remote" -v /home/serveradmin/leon:/workspace pytorch/pytorch:latest
2. 进入容器:
docker exec -it torch-remote bash
3. 更新容器的apt源,安装
ssh和
vimapt-get update
apt-get install openssh-server
apt-get install vim
4. 使用vim打开并修改配置文件,找到
PermitRootLogin prohibit-password
这一行,修改为
PermitRootLogin yes
,允许通过ssh远程访问docker。
vim /etc/ssh/sshd_config
5. 创建docker中root用户的密码。
passwd root
6. 启动ssh服务,至此,服务器端配置完毕。
service ssh restart
7. 我们在PyCharm中创建一个新项目,命名为docker-remote。在
Tools-Deployment-Configuration
中,按下图配置。注意
Type
选择
SFTP
,
Port
是步骤1映射的端口,
Password
是步骤5设置的密码。配置完成后,点击
Test SFTP connection
,测试连接是否成功。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iN3EGZkFjY1QTYjFzNwIDMxQzYygDM1ImM4YjMjNWMw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
8. 配置本地文件上传至docker的目录:
9. 在
PyCharm-Preferences-Project Interpreter
里,点击右上角的
设置按钮,选择
add remote
,配置如下图。注意
Python interpreter path
指的是docker中python的路径。
10. 接着需要等待一会,待程序配置结束。点击
Tools-Deployment-Automatic Upload
打开文件自动上传功能,上传文件需要一定时间。接着我们就可以实现远程运行和调试啦。