写在前面的
- 由于自己DOCKER的一些小DEMO还没有测试完毕,就把DOCKER的使用教程的文章先缓一缓。在使用DOCKER的过程中出现了一些小问题,参阅了DOCKER的官方手册和网上其他大神的一些说法之后,在这里总结一下DOCKER在使用过程中需要注意的一些原则
概念
简单的来讲,DOCKER就是对生产环境的一次封装,让生产环境可以持续集成。让开发-测试-生产这一整个过程的实现不再对环境产生过多的依赖。因为当我们按照自己的需求搭建起了一套环境之后我们可以将这套环境随便的引向这三个环节中的任意一个节点。
知道这些还远远不够,因为对任何事情,我们既要知道它是怎么回事,也需要知道它是怎么来的,为什么会有这么个东西,正所谓知其然,知其所以然嘛。随着软件技术的发展,DEV-OPS(Develope-Operation)越来越受到重视,然而DOCKER就是在这种情况下应运而生的一个产物,什么是DEV-OPS:请点击这里
注意事项
对大镜像说不
- 在镜像中安装的附件或者说程序是要有限度的,尽量不要将于开发无关的层序安装到镜像中进行调试。
不要再一个容器中运行多个进程
- 由于每个容器在运行的时候都会产生一些相关的进程。但是对于DOCKER中容器的管理就好比我们程序中的模块,我们尽量让每一个容器中的进程清晰,可控。否则在日志跟踪和和管理上回带来很多麻烦。
不要拆分程序
- 对DOCKER应用比较熟悉的人而言,可能吧一个程序的不同功能部署在不同的容器中,可能会让程序各个模块之间的分工更加明确。这样看似在某种程度上实现了“分布式”但是要之道在DOCKER中,我们的后期测试和部署,也需要相同的环境,一个程序的拆分需要对自己的环境进行仔细评估之后再决定是否要对其进行分块部署。但建议是”不“!
不要在容器中存储数据
- 重要的话就不再说三遍了。由于DOCKER中的容器运行的方式有两种,一种是交互式,一种是守护式,前者关闭即销毁,后者虽然是一种后台运行模式,但是一旦结束服务,那么在容器中的数据就会随之被销毁。所以,对于开发过程中的数据存放位置,必须要明确,否则,你就会得到一个炒老板鱿鱼的机会~~
限制对TAG最新标签的使用
- 刚开始接触DOCKER,第一个感觉就是“方便”,要什么随便PULL,反正有官方的DOCKER包做保障,我随时都可以PULL下来最新的。和eclipse,MAVEN以及众多的开元插件化开发工具一样,插件的安装给我们带来了诸多的方便,但是不可否认的是,版本问题依旧没有解决,如果我们一直使用最新的“插件”或者“镜像”那么等到部署生产或者测试的时候依旧是“最新”的标签,那么有可能就会出现“不兼容”的小尴尬,所以在开发过程中需要对镜像的版本做出控制和统一。
Root问题
- 对于现在的DOCKER而言,基本上在进行任何操作的时候都需要超级管理员的权限,也就是ROOT权限,因为DOCKER本身就是基于LINUX内核而开发的一款应用,即便是DOCKER for Windows也是在WINDOWS中虚拟了一个LINUX轻量级内核,所以DOCKER从出生遍带着LINUX系统中一些不可缺少的特性。因为LINUX中,任何操作对ROOT都是非常敏感的,所以现阶段的DOCKER在安全性方面还是有一些缺陷的,所以需要更加谨慎的使用。
总结
- 以上就是我在使用DOCKER的过程中对于这样一套新的DEVOPS原理的软件所产生的一些想法,网上的其他大牛们还总结了一些其他需要注意的地方,但是上面这些原则对于我来说感受颇深,分享给大家,共勉共勉~