SSH连接docker容器配置pycharm远程调试

1 测试环境

  • 操作系统:Ubuntu Server 16.04.6
  • docker版本:18.09.4
  • docker镜像:yxz_image

2 配置步骤

2.1 创建容器时指定映射的端口

  • docker run -itd --runtime=nvidia --name=eloquent_mclaren -e NVIDIA_VISIBLE_DEVICES=6 -v /datasets/:/datasets/ -v /workspace/:/workspace -p 9063:22 -dt yxz_image
  • -p是将指定的宿主机的9063端口映射到容器的22端口
  • yxz_image是将我自己的容器commit成的镜像,可用docker images查看镜像以便选择自己所需的

2.2 进入运行中的docker

  • docker exec -it eloquent_mclaren /bin/bash

2.3 在Docke容器里安装ssh服务

  • apt-get update
  • apt-get install openssh-server openssh-client

2.4 修改ssh_config并重启ssh服务

  • vim /etc/ssh/sshd_config
  • 修改如下:
    • PermitRootLogin without-password改为PermitRootLogin yes
    • #PasswordAuthentication yes改为PasswordAuthentication yes
    • UsePAM yes改为UsePAM no
  • 说明:
    • #PermitRootLogin yes #允许root用户以任何认证方式登录(用户名密码认证和公钥认证)
    • #PermitRootLogin without-password #只允许root用公钥认证方式登录
    • #PermitRootLogin no #不允许root用户以任何认证方式登录
  • service ssh restart 重启ssh服务

2.5 修改root密码

  • passwd root

2.6 ssh登录docker

  • ssh root@远程ip地址 -p 端口

2.7 pycharm远程连接docker调试

2.7.1部署pycharm(以x.x.x.x:port为例)

  • 打开pycharm,选择Tools -> Deployment -> Configuration.
  • 在Connection的Tab设置基本信息,如图1.
    在这里插入图片描述
  • 在Mappings的Tab设置映射关系,如图2.
    在这里插入图片描述

2.7.2 配置pycharm解释器

  • 在Pycharm中选择File -> Settings -> Project:xxx -> Project Interpreter -> Add,在打开的窗口中选择SSH Interpreter->Existing server configuration,选择对应信息,如图3、4.
    在这里插入图片描述
    在这里插入图片描述

  • 添加远程解释器的path,然后Finish,如图5.
    在这里插入图片描述

  • 可以进一步编辑ssh Credentials相应信息,如图6.
    在这里插入图片描述

  • 运行对应的py文件,如图7.
    在这里插入图片描述

参考资料

  • https://www.cnblogs.com/hslzju/p/5839913.html
  • https://blog.csdn.net/qq_34021712/article/details/73379851
  • https://blog.csdn.net/vincent2610/article/details/52490397
  • https://www.jianshu.com/p/c4d4ee6f3663
  • https://www.cnblogs.com/liangjiongyao/p/8794324.html
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值