首页 > 代码库 > 我理解Docker的过程2
我理解Docker的过程2
Docker的使用命令有很多,但是主要可以分为四类:
第一类:环境信息相关
info 2.version
第二类:系统运维相关
1.attach 2.build 3.commit 4.cp 5.diff 6.export 7.images 8.import / save / load 9.inspect 10.kill 11.port 12.pause / unpause 13.ps 14.rm 15.rmi 16.run 17.start / stop / restart 18.tag 19.top 20.wait
第三类:日志信息相关
1.events 2.history 3.logs
第四类:Docker Hub服务相关
login 2.pull/push 3.search
Docker在推广上主要是将开源社区和社交网络作为基础推广平台,结合全球范围的Docker技术聚会,形成了良好的良性的客户互动和口口相传的品牌效应。
我们知道,敏捷开发已经流行了很长时间,如今有越来越多的企业开始践行敏捷开发所提倡的以人为中心、迭代、循序渐进的开发理念。在这样的场景下引入Docker技术,首要目的就是使用Docker提供的虚拟化方式,给开发团队建立一套可以复用的开发环境,让开发环境可以通过Image的形式分享给项目的所有开发成员,以简化开发环境的搭建。但是,在没有Docker技术之前就已经有类如Vagrant的开发环境分发技术,软件开发者一样可以创建类似需求的环境配置流程。所以在开发环境方面,Docker技术的优势并不能很好的发挥出来。但Docker的其它优点还在于可以简化CI(持续集成)、CD(持续交付)的构建流程,让开发者把更多的精力用在开发上。
开发团队在引入Docker技术的过程中,首先需要解决的是让团队成员尽快掌握Docker命令行的使用。在熟悉了Docker命令行之后,团队需要解决几个关键问题具体如下:
1)Base Image的选择, 比如phusion-baseimage
Base Image包括了操作系统命令行和类库的最小集合,一旦启用,所有应用都需要以它为基础创建应用镜像。Ubuntu作为官方使用的默认版本,是目前最易用的版本,但系统没有经过优化,可以考虑使用第三方有划过的版本,比如如phusion-baseimage。对于选择RHEL、CentOS分支的Base Image,提供安全框架SELinux的使用、块级存储文件系统devicemapper等技术,这些特性是不能和Ubuntu分支通用的。另外需要注意的是,使用的操作系统分支不同,其裁剪系统的方法也完全不同,所以大家在选择操作系统时一定要慎重。
2)配置管理Docker镜像的工具的选择,比如Ansible、Chef、Puppet
配置管理Docker镜像的工具主要用于基于Dockerfile创建Image的配置管理。我们需要结合开发团队的现状,选择一款团队熟悉的工具作为通用工具。配置工具有很多种选择,其中Ansible作为后起之秀,在配置管理的使用中体验非常简单易用,推荐大家参考使用。
3)Host主机系统的选择,比如CoreOS、Atomic、Ubuntu
Host主机系统是Docker后台进程的运行环境。从开发角度来看,它就是一台普通的单机OS系统,我们仅部署Docker后台进程以及集群工具,所以希望Host主机系统的开销越小越好。这里推荐给大家的Host主机系统是CoreOS,它是目前开销最小的主机系统。另外,还有红帽的开源Atomic主机系统,有基于Fedora、CentOS、RHEL多个版本的分支选择,也是不错的候选对象。另外一种情况是选择最小安装操作系统,自己定制Host主机系统。如果你的团队有这个实力,可以考虑自己定制这样的系统。
我理解Docker的过程2