开发中我为啥要用Docker

刚刚开始在开发中使用Docker时,是非常不习惯的,比如用习惯了直接在命令行敲入nodejs就可以进入Nodejs的交互模式,想用python 就就直接进入python的交互命令行非常方便,真的不会特别喜欢用Docker每次都要输入一个特别长的Docker命令来完成一件事儿比如docker run -it --rm -v $PWD:/app node bash 。但是冷静下来想一想,使用Docker还是有一定的好处的。

坏掉的开发环境

不知读者有没有遇到过这样的情况:刚才我的代码还好好的,我一点儿代码都没动,现在就是不工作了, 好像刚刚不小心改了一些编译器的配置,好像不小心删了系统里的一个东西,这样的“好像”我写一天也写不完,因为情况会非常的复杂,开发环境是脆弱的,尤其是一些对操作系统入侵比较深的编译环境,可能做一点儿看似毫不相关的操作都会给我们的开发环境造成灭顶之灾。通常这种问题的处理方式简单,重新安装下编译环境、如果不行或者重新安装下操作系统(在Windows上我经常干这个事儿)。虽然我们知道怎么处理这些问题,但是修复这些问题动辄2~4个小时,开发大哥伤不起啊。如果使用Docker容器作为我们的开发、编译环境,至少每次使用我们都可以保证是全新的容器环境,首先会排出不小心改坏环境的问题,改坏了删除再创建一个就好了。 其次,不会发生在docker宿主机做点儿操作就破坏开发环境的问题,因为容器内运行环境和宿 大专栏  开发中我为啥要用Docker主机独立的,即便是出现了诡异现象,把坏掉的环境抛弃就好了。

现在可以总结在Docker中进行开发工作的两个优势:

  • 能够降低正在使用的开发环境坏掉的几率。
  • 当开发环境发生异常的时候,能够快速创建一套全新的开发环境(快到以秒计)。

不一致的开发环境

简单调查过一些开发团队,并且根据本身团队开发经验,几乎每个人的开发环境都是不一样的,每个人都有自己的使用习惯,自己私下也会尝试一些感兴趣的技术,所以每个人的开发机上几本都安装了不同的软件或是做了不同的设置。这样会导致什么问题呢?“不会吧,代码在我这好好的,在你那怎么会不行呢?”大概每个开发都遇到过这样的场景,这样的问题一般是要么因为环境不一致导致的、要么就是代码真的有问题。如果我们使用Docker作为开发环境,团队内创建一个私有的Docker镜像仓库共享相同的镜像。当这个场景再次出现的时候,只要使用镜像部署一下开发环境就能发现问题的大致方位了。

其他

其实Docker除了能快速解决开发环境问题、降低环境出错纪律、保证环境一致之外,我们还可以定制项目适用的Docker镜像解决一些因网络、脏数据库等原因的问题。

使用docker因比较长的命令引起的不便也可以通过一些小技巧对Docker的开发体验进行优化。在后续的文章中,会不断的给出关于使用习惯、体验优化的小技巧。

猜你喜欢

转载自www.cnblogs.com/liuzhongrong/p/11961049.html