• 使用PyCharm进行远程开发和调试


    准备

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

    原理

    本地利用SSH链接远程服务器交互数据,在本地Pycharm上显示远程结果。

    配置流程

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

    一、远程服务器创建docker container

    在这步之前,你应该安装好docker并且下载好了相应的image。

    二、 远程服务器ssh服务配置

    接下来需要配置远程服务器的ssh服务。 
    第一步,我们需要在远程服务器上安装openssh-server

    # Ubuntu
    $ apt update && apt install openssh-server

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

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

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

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

    service ssh restart
    

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

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

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

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

    如果能够链接成功到docker container就完成了此次ssh的配置。
    PS:如果失败请按以下顺序检查
    1.ssh的端口配置是否正确?(包括服务器和docker container)
    2.是否开启了防火墙,将端口禁用?

    Pycharm链接远程docker container(文件同步)

    现在开始配置Pycharm

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

      

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

    第三步,配置SFTP中的mapping

     

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

     

    启动DjangoServer,提供前台访问
    选择Run -> Edit Configration
    增加Django server,起名如:djangoserver

    配置docker
    服务器docker需要允许2375端口的连接

    sudo systemctl status docker 查看是否开启2375远程

    如果没有
    sudo vim /lib/systemd/system/docker.service 进入

    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd -H  tcp://0.0.0.0:2375    -H unix:///var/run/docker.sock
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutSec=0
    RestartSec=2
    Restart=always

    systemctl daemon-reload
    sudo service docker restart
    再次运行监控查看
    sudo systemctl status docker

    pycharm上进行设置

    I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我

  • 相关阅读:
    jvm原理----------4.Java虚拟机何谓垃圾及垃圾回收算法
    jvm原理----------5.垃圾收集器及内存分配策略
    jvm原理----------6.创建对象及对象的访问定位
    mysql的sql语句的常用的优化方式
    jvm内存原理及调优(完全总结)
    dubbo的负载均衡与重试机制
    File类
    异常的真实应用
    字符串转换功能
    Object类介绍
  • 原文地址:https://www.cnblogs.com/weidaijie/p/10654470.html
Copyright © 2020-2023  润新知