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 no
    • #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

2.7 pycharm远程连接docker调试

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

  • 打开pycharm,选择Tools -> Deployment -> Configuration.
  • 在Connection的Tab设置基本信息,如图1.
    SSH连接docker容器配置pycharm远程调试
  • 在Mappings的Tab设置映射关系,如图2.
    SSH连接docker容器配置pycharm远程调试

2.7.2 配置pycharm解释器

  • 在Pycharm中选择File -> Settings -> Project:xxx -> Project Interpreter -> Add,在打开的窗口中选择SSH Interpreter->Existing server configuration,选择对应信息,如图3、4.
    SSH连接docker容器配置pycharm远程调试
    SSH连接docker容器配置pycharm远程调试

  • 添加远程解释器的path,然后Finish,如图5.
    SSH连接docker容器配置pycharm远程调试

  • 可以进一步编辑ssh Credentials相应信息,如图6.
    SSH连接docker容器配置pycharm远程调试

  • 运行对应的py文件,如图7.
    SSH连接docker容器配置pycharm远程调试

参考资料

相关文章: