这是一个huge 坑慢慢填吧。这里只是一个目录 或总览。
docker 是什么? docker可以看做一种虚拟机技术,但没有传统虚拟机那么复杂,是基于进程的虚拟,就是让一个一个进程,认为自己处于一个单独的虚拟机里,具体如何实现 参考linux 虚拟化机术。
为什么要用docker? 1)开发部署方便、快捷 2)内置支持集群 3)理念特性面向微服务
.netcore /windows 对docker的支持如何 :?微软拥抱docker 自家service fabric 架构 底层容器正是使用docker .
docker 知识点精要:
docker :常见的概念:image ,container. registry, host
docker三剑客(工具):
docker-machine 本地和远程便捷安装docker 的工具
docker-compose: 编排工具,可以认为是一组docker容器的批处理指令,批这个批处理指令使用一个结构化的文件,docker-compse.yml
docker-swarm: docker 集群管理工具。
.net core 开发docker 流程(2017支持docker 工具)
创建.net core 程序,编写dockerfile,生成image 加载到host,运行container ,now 打开浏览器访问。就这么简单。
开发测试完成,生成image 复制生产环境有docker 的服务器上,加载运行之,OK了。
听说还有自动流成:svn->commit->测试或运行 build->load->start (目前还没涉及这方面)
云化部署:
编写docker-compile.yml =>参数中设置相关集群、负载、的方式,和swarm网络标识。
使用swarm运行。
使用 swarm 弹性调整群集。
还有代替swarm的工具,比如:k8s,service fabric,目前专业Paas公司都是使用k8s+ docker据说腾讯使用了service fabric +aspdonet +docker 架构了游戏集群。
当前市场状态
大去计算平台和产品目前 大部分支持k8s+docker
另一种方案就是:openstack了,美国政府机构搞的开源的东西,也是比较牛的,但目前应用没有openstack广泛。