1. Docker 为什么会出现?
比如做一款产品,通常会包括两个阶段:开发和上线。一般情况下,开发时开发人员使用的是一套环境,上线的时候运维人员使用的是另外一套环境。
在这种情况下,很容易导致一个问题就是,一个项目在开发人员使用的环境中可以运行,但是在运维人员那就不可以运行!!!导致这种情况的出现,其中一个很重要的原因就是开发环境的不同。
而且,环境的配置是十分麻烦的,比如给大量机器配置环境(比如和大数据相关的集群环境)就十分耗费时间。
在以前发布一个项目的时候,通常开发人员只给运维人员一个 jar 包,而现在的一个思路就是,开发人员将 jar 包和 “环境” 一起打包发给运维,一套流程做完。
针对以上问题,Docker 提出了解决方案!!!
传统开发:java --> app --> 发布(应用商店)--> 下载 app --> 安装使用
现在开发:java --> app(jar 包+环境,称之为 Docker 镜像) --> 发布到(Docker 仓库,相当于应用商店)--> 下载发布的镜像安装即可运行
上面是 Docker 的 logo,鲸鱼上面是一个一个的集装箱,那么 Docker 的思想就是来源于集装箱,每个集装箱之间是相互独立的,也就是相互独立的环境!!!
在 Docker 之前,多个应用之间很容易存在一些冲突问题,最常见的就是 “端口冲突” 的问题!
那么,Docker 的做法就是隔离,也就是说 “隔离” 是 Docker 的核心思想!!!将每一套环境打包装箱,每个环境相互隔离。
另外,使用 Docker 的一个好处就是,可以将服务器的资源使用到极致!!!
本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习!
2. Docker 的历史
2010 年,几个从事 IT 行业的年轻人,在美国成立了一家公司,公司的名字最早叫 dotCloud
,做一些和 pass 相关的云计算服务(LXC 有关的容器化技术)!
他们将自己的技术(容器化技术)命名为 Docker
但是,Docker 刚刚诞生的时候,并没有火起来,没有引起行业足够的重视。
经过慎重考虑,该公司决定将自己的技术 开源
,于 2013 年正式开源!
开源之后,越来越多的人发现了 Docker 的优点,Docker 因此火了起来!此后,Docker 每个月都会更新自己的版本,证明 Docker 的社区是非常活跃的!
2014 年 4 月 9 日,Docker 1.0 正式发布!
2.1 Docker 为什么这么火???
相比于虚拟机(非常的笨重,需要模拟各种硬件等等),Docker 十分的轻便!!!
在容器技术之前,都是使用虚拟技术进行的!!!
虚拟机技术:比如可以在 Windows 中安装一个 Vmware,然后通过这个虚拟机虚拟出一台或者多台电脑!但是,缺点就是十分的笨重,占用大量内存!
虚拟机是一种虚拟化技术,Docker 是一种容器技术,也属于虚拟化技术!!!
两种技术的对比:
VMware:需要使用 Linux Centos 原生镜像(就是一台电脑的环境),如果要隔离,就要开启多个虚拟机!而且,虚拟机启动十分的缓慢!
Docker:只需要模拟最核心的环境(然后加上一些额外的环境,比如:jdk,mysql等等),称之为镜像,十分的轻巧,只需要运行镜像即可!并且,Docker 启动十分的快速!
3. Docker 的基本知识
Docker 是基于 Go 语言开发的,是一个开源项目!
官网地址:https://www.docker.com/