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方式,完成了代码的实时同步。