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 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

  • 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.
    在這裏插入圖片描述

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章