对 docker 刚刚开始学习,是因为开始了一个新的项目,使用的是 Django+Hbase+Git,光搭建普通的开发环境就得耗费很长时间,所以研究了一下 docker,但是对 docker 搭建开发环境还是有些不了解。
我们项目组的设想就是只要每个人主机上安装了 docker,就可以直接在 docker 里使用 Pycharm 进行开发,修改代码和通过 Git 同步,最理想的情况是其他开发者连 Pycharm 都不用装
,次些的情况是开发人员只需要安装了 python,Pycharm,和 docker,就可以在本地的 Pycharm 里对代码进行普通的调试运行,不知道 docker 能否实现这样的功能,求大神指教lol
首先docker里面是不能跑pycharm的,你要把docker的每个容器当做是一个独立的电脑。试问,别人的电脑上装个pycharm,你们在同个局域网的时候,你能用他的pycharm来编辑你电脑上的python代码吗?
docker主要搞定是环境的隔离和打包
环境的隔离:docker的每个容器可以简单理解为一个沙箱,在容器里面安装的各种软件都不会影响宿主机的真实软件环境。假设一个场景,你手上有10个同时在维护的项目,但是问题是这10个项目各自依赖的python版本都不相同(项目1依赖python1.1,项目2依赖python1.2,项目3依赖python2.1...项目10依赖python3.3),如果不用docker,你怎么办?在你电脑上把每个版本都装一个?各个版本之间的环境依赖会不会有冲突?是不是想想就头大。而docker就完全ok,他们各自环境完全独立互不影响,想怎么玩都行
环境的打包: 假设你们有个100人的开发团队,有的开发环境是windows,有的是linux(具体发型版还各不相同),有的是mac。各自系统上安装的软件版本各种五花八门。这时候你们要开发一个项目,既然是一个项目,那必定最好是要统一开发环境咯,一致的各种配置参数,一致的python版本,一致的各种扩展包及扩展包的版本,一致的环境变量等等,这时候如果让各自配置各自的环境,可能对于老手来说三下五除二就搞定了,但是对于经验不是很足的新人来说,可能就这个环境就得搞好几天。而docker就简单了,只要一个人写好一个dockerfile文件,里面写好各种配置,再分发给所有开发组成员,大家只需要一个docker build命令,就完成了环境的搭建,而且软件运行的系统环境,配置参数,扩展库及依赖等都是一致的。项目完成之后,实际上线时,也可以用这个dockerfile来一键搭建线上的软件项目运行环境(或者直接将本地开发时使用的容器打包为镜像,然后发布镜像),而且保证了线上运行环境和本地开发环境的一致,避免了各种因环境不同搞出来的各种问题了。
就你的问题而言,结合我个人的使用经验,Django,Hbase可以放在docker里面(Django镜像应该自带python运行环境),pycharm和git安装在宿主机。所以开发人员需要安装的是pycharm+git+docker就好了
docker可以跑 pycharm? 再说了一个python环境而已,第三方引用也很好控制。
docker更多的作用是运维方面的,部署即用,不用搭建程序的运行环境。开发好了打包发布嘛,难道是想开发机器用docker?那就很有勇气啦。