pycharm远程调试docker

pycharm远程调试dockerpycharm 远程调试 Docker

Pycharm远程调试Docker

目录

  • 准备
  • 原理
  • 配置流程
  • 一、远程服务器创建docker container
  • 二、远程服务器ssh服务配置
  • 配置pycharm

使用学校集群跑深度学习代码,终端连接调试过于繁琐,所以有了本文。

准备

  • Ubuntu 16.04(远程服务器)
  • Ubuntu(本地)
  • docker(远程服务器)
  • openssh-server(远程服务器)
  • Pycharm profession版(本地)
  • ssh(本地)

原理

本地利用SSH链接远程服务器交互数据,Pycharm调用远程docker容器中的python编译器运行代码,并在本地显示远程结果。

配置流程

  1. 在远程服务器创建docker container
  2. 远程服务器ssh服务配置
  3. Pycharm链接远程服务器(文件同步)
  4. Pycharm链接远程的docker container (配置远程编译器)  

一、远程服务器创建docker container

在创建容器时需要设置端口映射,-p 本机端口:容器端口

docker run -id -p 8022:22 --name container_name -v 宿主机目录:容器目录 image_name:tag
参数解释: -id:使容器退出时不会关闭,如果为-it 则退出容器后,容器会停止 -p :端口映射,将容器的22端口映射到服务器的8022端口,22端口为sftp的端口,远程时必须开放22端口才能保证文件的上传下载同步 -v :目录的挂载,将服务器与容器的目录同步

第一步,我们需要在远程服务器上安装openssh-server

$ apt update && apt install openssh-server

  这里注意,不仅仅是远程服务器上要安装ssh服务,同时远程服务器上的docker container也内也需要安装openssh-server。

第二步,安装完成以后需要配置ssh服务

# 此配置在docker container中完成 # 将Root的密码修改为test $ echo 'root:test' | chpasswd # 允许使用root身份登录 $ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config $ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd $ echo "export VISIBLE=now" >> /etc/profile 

其实直接在容器中输入 passwd 然后输入密码即可

通常docker容器下的用户为root,其他sshd_config配置实测没有必要,可能是新版本openssh默认根用户登录

第三步,配置好ssh服务之后重启ssh服务

$ service ssh restart

第四步,测试docker container中ssh服务端口在远程服务器上的映射

# 此操作在远程服务器 $ docker port 
  
    22 # 此操作将查看docker container中端口22,在远程服务器上端口的映射 # 输出结果如下所示 0.0.0.0:8022 # 表明只要ssh链接远程服务器的8022端口,实际是链接docker container中的22端口。 
  

第五步,测试是否能够使用ssh链接docker container

$ ssh root@ 
  <你服务器的ip地址>
    -p 8022 # 密码就是刚刚重新设置的 
  

注意如果能够链接成功到docker container就完成了此次ssh的配置。

如果失败请按以下顺序检查

  1. ssh的端口配置是否正确?(包括服务器和docker container)
  2. 是否开启了防火墙,将端口禁用?
  3. 也可以运行 sudo gedit /etc/ssh/sshd_config 修改配置,保存,并重起ssh
sudo service ssh restart

到这里远程的配置到一段落,接下来使用本地的pycharm操作 Pycharm链接远程docker container(文件同步)

配置Pycharm

配置SFTP

在导航栏中 Tools>Depolyment>Configuration中添加配置SFTP。 如图

pycharm远程调试docker

添加配置SFTP,点击弹窗左上角的+号。选择SFTP,根据自己的实际情况进行配置。

pycharm远程调试docker

PS:这里的root密码就是之前设置好的test

配置SFTP中的mapping

pycharm远程调试docker

都配置完之后。打开自动上传功能 Tools>Depolyment>Automatic Upload(always) 本地修改好代码只要按保存键就自动将本地代码上传至远程docker container中。 到这里已经配置好代码的自动同步了。还差最后一步,远程调试就配置成功。

Pycharm链接远程docker container (配置远程编译器)

添加新编译器(远程docker container编译器)

pycharm远程调试docker

在打开的页面选择之前配置好的SFTP

pycharm远程调试docker

通常选择完之后羡慕有两个选项 Create: 新建SFTP Move: 将选择的SFTP作为编译器的SFTP

通常选择Move就好

选择你需要使用的解释器

pycharm远程调试docker

上面已经配置了mapping,选择了move之后,项目位置就会自动映射。

pycharm远程调试docker

至此,彻底搞定Pycharm远程调试Docker container

只要在调试的时候,选择新建的远程调试编译器就好

本文参考至:

PyCharm+Docker:打造最舒适的深度学习炼丹炉 

pycharm远程调试docker containers

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173107.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午9:26
下一篇 2026年3月27日 上午9:26


相关推荐

  • 关于docker容器启动后修改或添加端口

    关于docker容器启动后修改或添加端口

    2021年6月2日
    160
  • docker的端口映射_docker修改端口映射

    docker的端口映射_docker修改端口映射1.downloadimage:docker@default:/root#dockerpullmikeraab/hello-earth:latest2.createandstartcontainer(docker主机IP:192.168.99.101)a)默认大写-P自动映射$docker@default:/root#dockerrun-d

    2022年10月17日
    5
  • docker(6)镜像的使用「建议收藏」

    docker(6)镜像的使用「建议收藏」前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年8月6日
    7
  • 查看此docker网络连接模式_Docker 网络模式(四种)详细介绍

    查看此docker网络连接模式_Docker 网络模式(四种)详细介绍Docker 网络模式本文首先介绍了 Docker 自身的 4 种网络工作方式 Docker 作为目前最火的轻量级容器技术 有很多令人称道的功能 如 Docker 的镜像管理 然而 Docker 同样有着很多不完善的地方 网络方面就是 Docker 比较薄弱的部分 因此 我们有必要深入了解 Docker 的网络知识 以满足更高的网络需求 四种网络模式我们在使用 dockerrun 创建 Docker 容器时 可以用 net 选

    2026年3月17日
    1
  • docker镜像操作_docker主要特性

    docker镜像操作_docker主要特性前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月29日
    6
  • WSL2 + Docker + xfce4安装及使用

    WSL2 + Docker + xfce4安装及使用WSL2 Docker 安装及使用 WSL 官方指南 适用于 Linux 的 Windows 子系统安装指南 Windows10 文档比较详细 欢迎大家指错一 前言 1 1 什么是 WSL wsl 是适用于 Linux 的 Windows 子系统 英语 WindowsSubsy 简称 WSL 是一个为在 Windows10 和 WindowsServe 上能够原生运行 Linux 二进制可执行文件 ELF 格式 的兼容层 可让开发人员按原样运行 GNU Linux

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号