中间件学习——Docker的前世今生

举报
翟文彪 发表于 2022/01/26 15:48:42 2022/01/26
【摘要】 Docker概述 Docker为什么会出现?我们在开发一款产品的过程中一定是需要至少两套环境的:开发和生产。现在更多的公司都是在使用开发、测试、生产三套环境,我们对不同环境的配置和打包都是非常繁琐和复杂的,而且重复度很高,同一件事情要做好几遍。而且,相信每一个开发人员都遇到过一个问题:为什么在我的电脑上可以运行,别人的就会出现问题。这些都是环境不一致导致的问题。发布一个项目需要打jar包(...

Docker概述

Docker为什么会出现?

我们在开发一款产品的过程中一定是需要至少两套环境的:开发和生产。现在更多的公司都是在使用开发、测试、生产三套环境,我们对不同环境的配置和打包都是非常繁琐和复杂的,而且重复度很高,同一件事情要做好几遍。而且,相信每一个开发人员都遇到过一个问题:为什么在我的电脑上可以运行,别人的就会出现问题。这些都是环境不一致导致的问题。

发布一个项目需要打jar包(包含redis、mysql、jdk、es…),项目并不能带上环境进行打包,而且在一台服务器配置一个应用的环境是很麻烦的,并且也不支持跨平台。

于是Docker就出现了,为的就是解决上面的问题。

传统:开发打jar包,环境由运维来配置
现在:开发打包部署上线,一套流程做完
image.png

我们可以看一下docker的图标,是一个鲸鱼上面承载着很多的集装箱,Docker的思想就来自于集装箱。
隔离:Docker的核心思想,打包、装箱,每个箱子都是互相隔离的。

docker就是利用了隔离这一个机制将服务器的机能压榨到极致

Docker的历史

2010年,几个搞it的年轻人,就在美国成立了一家名叫dotcloud的公司,做一些pass的云计算服务。LXC有关的容器技术,他们将自己的技术(容器化技术)命名为Docker。Docker刚刚诞生的时候,没有引起行业的注意!
于是这些年轻人想到将该项目做成开源的——也就是开发源代码。

2013年,将Docker项目进行了开源。于是越来越多的人发现了Docker的优点,Docker就这样顺理成章的火了起来。
2014年4月9日,Docker1.0发布

什么是Docker?

说了这么久的Docker的历史,我们主要来真正的认识一下,Docker到底是什么?
我们先来看一下百度百科给出的解释:“Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。”
我们学习使用Docker也需要知道Docker的官方文档地址
文档地址:https://docs.docker.com/ 内容非常详细
仓库地址:https://hub.docker.com/ 类似于git push…

Docker能干嘛?

之前的虚拟机技术

缺点:

  1. 资源占用非常多
  2. 冗余步骤很多
  3. 启动很慢

容器化技术

容器的技术不是模拟的一个完整的操作系统

比较Docker和虚拟机技术的不同

  • 传统虚拟机,虚拟出一层硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以很轻便
  • 每个容器间相互隔离,每个容器内都有一个属于自己的文件系统,互不影响

应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便携的升级和扩缩容
使用了Docker之后,我们部署应用就像搭积木一样将项目打包成一个镜像,扩展服务器A,只需要把镜像打包直接运行在服务器B即可
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能能被压榨到极致

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。