写在前面,大家好!我是【跨考菌】,一枚跨界的程序猿,专注于后台技术的输出,目标成为
全栈攻城狮
!这博客是对我跨界过程的总结和思考。如果你也对Java
、后端技术
感兴趣,抑或是正在纠结于跨界,都可以关注我的动态,让我们一起学习,一起进步~
我的博客地址为:【跨考菌】的博客
系列大纲,持续更新:
【docker快速上手学习笔记】01聊聊docker
【docker快速上手学习笔记】02 超全整理docker通用指令
【docker快速上手学习笔记】03 小白也能看懂的docker安装nginx
【docker快速上手学习笔记】04 小白也能看懂的docker安装mysql
【docker快速上手学习笔记】05 深入浅出Dockerfile
【docker快速上手学习笔记】06 利用docker部署一个属于自己的博客网站jpress
1、docker是啥东东?
docker公司的前身是dotCloud公司
。起初公司发展的不错,不但拿到过一些融资,还获得了美国著名孵化器YCombinator
的支持,后来微软谷歌亚马逊这样的大厂商也纷纷加入PAAS
平台,竞争十分激烈,dotCloud
举步维艰。
2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破,工程师又不想自己的努力付之东流,于是他们决定将他们的核心技术开源.这项技术就是docker。当时docker的功能就是将linux容器中的应用代码打包,可以轻松的在服务器之间进行迁移。
无心插柳柳成荫,docker技术风靡全球,于是dotCloud公司改名为docker Inc,并全面投入到docker的开发之中.
2014.6 Docker发布了第一个版本 Docker1.0
2014.7 获得C轮融资 $4000W
2015.4 获得D轮融资 $9500W
如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。
2、为什么要学习docker
Docker作为开发人员和系统管理员使用容器开发、部署和运行应用程序的平台,展现出了显著的优势,在低开销的情况下,打造一个一致性的环境。
在实际的开发中,docker的应用场景包括:
1)简化配置
Docker可以在降低额外开销的情况下,让你将`运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
2)代码流水线配置
代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。(很多大厂都有很多的自己的代码流水线平台,所以了解docker对于理解流水线的机理大有裨益!)
3)提高开发效率
不同的开发环境中,我们都想把两件事做好。
- 一是我们想让开发环境尽量贴近生产环境;
- 二是我们想快速搭建开发环境。
理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。
4)隔离应用
为了降低开发成本,我们一般会选择在一台机器上部署多个应用,这个时候就需要考虑的是不同的应用彼此互不干扰,docker在这方面就做的特别好。
5)整合服务器
Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
6)快速部署
在虚拟机之前,引入新的硬件资源需要消耗几天的时间。Docker的虚拟化技术将这个时间降到了几分钟,Docker只是创建一个容器进程而无需启动操作系统,这个过程只需要秒级的时间。你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。
综上所述,不管开发测试还是运维,绝大多数人都应该会接触到docker。所以学docker还是很有必要的。和我一起学习吧!
如果你觉得对您有帮助,不要忘记帮博主一键三连😊哦