Docker为什么出现
关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环 境的兼容,对运维人员是极大的考验!
环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,
软件可以带环境安装?
也就是说,安装的时候,把原始环境一模一样地复制过来。解决开发人员说的
“
在我的机器上可正常工作”
的问题。 之前在服务器配置一个应用的运行环境,要安装各种软件,就拿一个基本的工程项目的环境来说吧,
Java/Tomcat/MySQL/JDBC
驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如 我们是在 Windows
上安装的这些环境,到了
Linux
又得重新装。况且就算不跨操作系统,换另一台同 样操作系统的服务器,要移植应用也是非常麻烦的。 传统上认为,软件编码开发/
测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码文件
等(
Java
为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得 以部署应用程式。
开发需要清楚的告诉运维部署团队,用的全部配置文件
+
所有软件环境。不过,即便如
此,仍然常常发生部署失败的状况。
Docker
之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。
Docker
镜像的设计,
使得
Docker
得以打破过去「程序即应用」的观念。通过
Docker
镜像
( images )
将
应用程序所需要的系统环境,由下而上打包,达到应用程序跨平台间的无缝接轨运作。
![](https://i-blog.csdnimg.cn/blog_migrate/b654e70836963d6c8395f9976935611b.png)
Docker的思想
Docker
的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并 且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水 果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他 们都运走。
docker
就是类似的理念。
注:本文有参考于狂神和某度