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