当前位置: 首页 > news >正文

Pycharm 对容器中的 Python 程序断点远程调试

        pycharm如何连接远程服务器的docker容器有两种方法:

        第一种:pycharm通过ssh连接已在运行中的docker容器

        第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器

        本文是第一种方法的教程,第二种请点击以上的链接

条件:

(1)准备好pycharm专业版,社区版没有连接远程服务器的功能

(2)远程服务器ubuntu,已安装好docker

一、配置远程服务器的docker容器

1. 启动并运行交互式容器

(1)如果docker版本在19.03或以上,運行

docker run -itd --shm-size=8G -entrypoint="" -p 8089:22 --name="pgf_train" --gpus all -v /home/th/PycharmProjects/qa/:/workspace/qa pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash

        (2)如果docker版本在19.03以下,運行

docker run -itd --shm-size=8G -entrypoint=""  -p 8089:22 --name="pycharm_train2" -e NVIDIA_VISIBLE_DEVICES=2,3  -v /mnt/inspurfs/user-fs/panguofeng:/pgf_api pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash

这里需要映射主机端口到容器端口,后续就是通过端口来连通容器的。

-p 8089:22:这里主机端口8089(pycharm映射端口), 容器端口是22--shm-size=8G -共享内存设置,提升cpu到gpu数据传输的效率--gpus all -容器创建所使用的gpu数量;-e NVIDIA_VISIBLE_DEVICES=2,3

        2.进入交互后修改容器的root密码

passwd

        

        3、给容器安装openssh-server和openssh-client                

$ apt-get install openssh-server
$ apt-get install openssh-client

        如果出现问题,运行命令更新源:        

apt-get -y update

        4、修改SSH配置文件

vim /etc/ssh/sshd_config

        打开sshd_config文件后,在文件最后面添加以下内容:

PermitRootLogin yes #允许root用户使用ssh登录

        5、重启ssh服务

/etc/init.d/ssh restart

        6.退出容器,链接测试

ssh root@127.0.0.1 -p 8089
root: 容器内部系统的root帐号,不是服务器的用户帐号127.0.0.1:服务器本机ip,也可以通过ifconfig查看对应实际ip4地址-p 8089: 该端口号是链接容器端口22的映射端口,外部链接使用.

        然后输入第二步设计好的密码,进入容器成功。

        这样就测试链接成功了.接下来就是windows系统的pycharm连接容器了.

二、配置pycharm并连接docker容器

        1. Configuration配置远程连接        

   

   

    

        创建SFTP服务docker_test, 参考以上截图填写。

        路径映射:

        2. 上传本地代码数据到docker容器中并运行

        上传完代码数据后, 需要选择设置python编译器:

        设置好python解释器就可以run代码了

        这里要注意一下,代码所要的运行环境还需要在docker容器安装配置好,比如我这里需要pytorch环境以及python代码运行所需的依赖库都已经在docker容器中通过pip安装好了。

设置好python解释器就可以run代码了。

        参考原文::pycharm 远程连接docker容器调试程序

相关文章:

  • visual basic 6.0软件安装包(永久),适用于Windows各系统附安装教程
  • 旅游业为什么要选择VR全景,VR全景在景区旅游上有哪些应用
  • 路由器基础(二): BGP原理与配置
  • 【计算机组成与设计】Chisel取指和指令译码设计
  • ‘spmatrix‘ has no attribute ‘__div__‘. Did you mean: ‘__dir__‘?
  • lamba stream处理集合
  • 【Midjourney入门教程4】与AI对话,写好prompt的必会方法
  • Spring Boot创建多模块项目
  • kafka-consumer-groups.sh
  • 【黑马程序员】SSM框架——SpringBoot
  • 【电路笔记】-谐波
  • 人工智能领域CCF推荐国际学术刊物最新目录(全)
  • 自动驾驶学习笔记(六)——Apollo安装
  • 力扣160. 相交链表
  • 【JavaScript】window 对象、location 对象、navigator 对象和 history 对象
  • 2017 年终总结 —— 在路上
  • Akka系列(七):Actor持久化之Akka persistence
  • CentOS7简单部署NFS
  • CSS实用技巧
  • CSS实用技巧干货
  • Elasticsearch 参考指南(升级前重新索引)
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript基础之Array数组API
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Js基础——数据类型之Null和Undefined
  • laravel5.5 视图共享数据
  • Objective-C 中关联引用的概念
  • Redis在Web项目中的应用与实践
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 动态魔术使用DBMS_SQL
  • 多线程事务回滚
  • 扑朔迷离的属性和特性【彻底弄清】
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微服务框架lagom
  • 我的面试准备过程--容器(更新中)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # centos7下FFmpeg环境部署记录
  • #git 撤消对文件的更改
  • (175)FPGA门控时钟技术
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (蓝桥杯每日一题)love
  • (力扣)循环队列的实现与详解(C语言)
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (南京观海微电子)——I3C协议介绍
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (小白学Java)Java简介和基本配置
  • (转)shell调试方法
  • (转)winform之ListView
  • .bashrc在哪里,alias妙用
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 动态调用WebService + WSE + UsernameToken