docker未来之我见=一个dockerfile+一个script
docker repositories:https://registry.hub.docker.com/search?q=library&s=stars,仓库列表上有很多Image镜像
docker是一种部署各种app(可以是一个Linux OS如Ubuntu,Centos等,也可以是数据库如redis,mysql,mongodb等,也可以是Linux开发环境如rails,python,java等,还有其他在Linux上的各种应用都可以基于Linux OS去自己构建一个Image)到Linux上的工具。
一般构建docker app的步骤是:
1.从仓库中拉取相应的Image镜像
2.运行镜像未一个容器,同时配置容器的网络环境(很多工具可以做pipework,weave等),同时加载宿主数据卷(当然宿主也可以挂载网络上的数据卷)
3.进入容器,运行数据卷上对应到容器内的配置脚本,同时启动app服务
4.如果是集群app,那就把上面1~3步骤脚本化到每一个app,最后执行一个脚本命令配置好整个集群
另外一种是
用dockerfile自己做一个Image,具体参数请查看:http://docs.docker.com/reference/builder/#usage
在云计算时代,各种云服务很多,一般的做法是购买几台Linux云虚拟机,然后在每一台上面装好docker组件(如果没装的话),当然如果公司有钱的话,可以一套用于开发,一套用于部署,一套用于测试,如果公司很缺钱,只要一台部署就可以了,当然如果已经服务上线了这是有风险的。在docker上,你可以很灵活的实现各种服务的集群和迁移管理(当然这块技术很复杂。。),如果你只有一台服务器,想把所有app服务都放在上面,肯定够呛,不过也不是不可以,只不过性能和安全性方面风险很大,所有docker一般还是部署在多台服务器进行集群运行,因为我们并不能保证哪台服务器下一秒钟不工作,如果我们还有一批线下的服务器,也可以通过weave和各种云中的docker配置到同一个虚拟网络来进行管理(如在Azure上一个CoreOS集群上安装Weave Docker虚拟网络:https://github.com/chanezon/azure-linux/blob/master/coreos/weave/README.md),当然线下服务器来进行数据或者大数据分析相比网络服务器来说成本低很多。
个人觉得,docker未来的发展,除了完善好现有的docker平台和网络管理,cpu,内存限制等技术外,还有一个发展就是所有的app在未来包括集群app,未来只需要一个简单的dockerfile和一个简单的集成化脚本,build完用户需要的服务就已经搭建成功了,其实现在很多的docker相关的项目都是用dockerfile写的,如Fig,shipyard,dockerui等等。