之前一直关注过docker,也知道docker大概是什么东西,容器技术,比虚拟机轻量,但是一直不太理解,这两天公司这边要使用docker,又再次找文档,看技术文章和介绍,又结合自己的开发经验和分析,感觉理解了一些儿。
分析原因,为什么之前不容易理解,一定程度上是半路出家的原因,还有就是,之前看了文章和介绍,但是并没有实际操作,所以不容易理解。正如,最开始转行的时候,也是看书,有的东西知道,有的东西却是一知半解,有的东西是压根不理解,不明白,感到茫然。后来,敲打代码,并且执行之后,才开始理解。在入职之后,进步的更快,一个是同事带领,一个是有现成的代码,可以运行和参考,以及理解。
然后入门之后,感觉可以自学了,但是这次遇到docker还是略微茫然。不知道如何把知识串起来,经过今天的查找和理解,感觉理解了些。
以下正文
这里做个记录,也是分享吧,有人看?!!
首先看了一篇文章,使用docker搭建开发环境, 建议先看一遍。
之前
之前开发环境是:
- Win10系统 ------->主机系统
- Vmware虚拟机 ------->虚拟容器
- Ubuntu16 ------->虚拟机系统
- Pycharm ------->开发工具
- Python3
- Django
- Nginx ------->反向代理
- Mysql ------->主数据库
- Redis ------->缓存
- mongodb ------->操作日志
- Git
之前开发一直在虚拟机中,进行调试和提交代码,习惯了Pycharm
的调试模式,虽然有时候比较卡吧。
使用docker
使用docker
可以在docker
中开启各个服务,但是如何进行开发和调试,却把自己卡住了。
现在想来,应该是这样,也让自己对开发流程,和程序运行了解更深。
如下
之前开发,
Pycharm
开发工具,调用Ubuntu中Python3
的虚拟环境,然后执行程序代码,程序中设置了远程Mysql
和MongoDB
的连接路径,并且使用本地的redis
进行程序的运行,本来配置了Nginx
,后来一直做后台的开发,前台做的少,因此Nginx
后来没在配置和启动,当然Hosts
文件也是没有动的。
每次开发,切到合适的分支上,然后修改代码或者添加新的代码,然后启动程序,在本地测试,会使用Pycharm
的调试模式。调试结束之后,使用Git
提交代码。然后推送到远程,远程合并分支,进行上线。
使用docker后
在本地系统上安装docker
, 然后配置docker
启动python3
环境,配置好各种依赖包,然后启动python3
映射到本地的一个服务(端口),同样的操作,使用docker
启动Nginx
, mysql
, redis
, mongodb
,然后在代码和Pycharm
中配置好相关的路径和服务,然后同样的,在Pycharm
中进行开发,使用Git
进行文件的跟踪。
以上
如果理解的不对,请大家指点