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.