pycharm远程调试docker容器内部程序

1. 个人开发环境如下:

(1)pycharm专业版(2018.1.2)位于windows10上

(2)docker-daemon(1.13.1)位于centos7上,centos7地址为10.74.53.141

2. 开启dacker-daemon远程接入特性,允许pycharm连接

(1)编辑docker服务配置文件,保存修改【vim /lib/systemd/system/docker.service】

(2)重载配置,并重启服务

        $ systemctl daemon-reload
        $ sudo service docker restart

(3)测试

        在另一台主机上,比如windows10上,telnet 10.74.53.141 2475,可以成功访问docker-daemon

3.  pycharm:新建工程

(1)新建一个纯python工程,暂时python解释器可忽略

(2)构建工程的基本框架,dockerfile.txt要根据需求自行创建

4. pycharm:配置程序运行的docker环境

(1)配置程序运行环境为docker

(2)新建docker-host

(3)配置构建和运行docker-container时的参数

5. pycharm:配置本地与docker-host文件同步

(1)配置sftp方式连接docker-host

(2)配置账号和密码,测试连接是否成功

(3)配置用于文件同步的本地和远端目录

(4)手动上传本地工程到docker-host,也可以自动上传

6. pycharm:开始运行代码

7.总结

(1)pycharm与docker-host直接建立了几条连接,作用是什么?

         一条是sftp(22 / tcp)连接,用于pycharm与docker-host的文件同步;

         一条是docker(2375 / tcp)连接,用于pycharm发送docker指令给docker-host。

(2)pycharm发生了几条指令给docker-host,作用是什么?

         一条是,在docker-host上,基于pycharm工程里的dockerfile.txt构建image;

         一条是,执行程序时,发送指令给docker-host,让基于image运行container。

(3)最开始docker-host上是没有任何image与container的,那么运行本工程代码的container是怎么来的?

        在刚刚建立工程框架的时候,我们就已经写好了dockfile.txt文件;

        在配置docker环境时,填写了server:docker-host,image-tag:myproject:1.0, container name: myproject_instance。

(4)pycharm如何远程执行位于docker-container内部的代码?

        在配置docker环境时,command处填写了 python /usr/loca/myproject/run.py,意指启动container时,立即运行程序。

(5)win10上的代码如何跑到docker-container内部?

        在配置本地与docker-host文件同步时,填写了本地工程目录与远端docker-host目录的映射;

        在配置docker环境时,bind mounts处填写了docker-host与docker-container的目录映射;

        通过pycharm---(sftp)----->docker-host---(docker挂载)-------->docker-container方式,完成了代码的实时同步。

猜你喜欢

转载自blog.csdn.net/Wendy019900107/article/details/81985837