docker是什么
- docker是一个用来装程序及其环境的容器,属于Linux容器的一种封装,提供简单易用的容器使用接口,它是目前最流行的Linux解决方案。
为什么需要docker
- 环境配置的难题
- 为了解决环境配置的问题,有了虚拟机的概念,所谓虚拟机就是带环境一起安装,可以在一个操作系统里面运行另一个操作系统。例如我们Windows系统中,安装一个Linux的虚拟机,虚拟机里面可以运行程序,有其硬盘、CPU、内存,看上去和真实的机器是一样的,对于外层的Windows系统来说,虚拟机只是一个普通的程序,故虚拟机一定程度上解决了环境配置的难题。虚拟机的缺点:资源占用多,会独享一部分内存和硬盘;冗余步骤多,虚拟机模拟的是一套完整的操作系统,因而一些操作系统级别的步骤无法跳过,例如登陆;启动慢。
- 在此基础上发展出了新的技术,Linux容器,它也是docker的基础。Linux容器仅对进程进行隔离【在正常运行的进程外面套一个保护层,对于容器里面的进程而言接触到的资源都是虚拟的,就和它所在的宿主操作系统进行隔离】。因其没有模拟一套完整的操作系统,相对于虚拟机来说,启动会更快一些,启动容器相当于启动本机的进程;占用的资源少,只会占用其所需要的资源;体积小,不会对整个系统进行打包,生成的文件比虚拟机的文件小的多。
docker的用途
- 提供统一的环境
- 提供快速拓展,弹性伸缩的云服务
- 例如对于电商场景,618、双十一等特殊时间的业务量可能是平时的几倍,甚至几十倍。自然面对这种大业务量的可以扩容,购买更多的服务器,但是在平时的话,这就是浪费,会涉及到临时部署和下线,运维工作量会加大。docker可以快速的部署、下线
- 防止其他用户进程占用过多的服务器资源
docker的特点
- 标准化
- 运输方式(把程序和环境从一个机器运到另一台机器)
- 存储方式(程序和环境的存储)
- API接口(不需要Tomcat等应用的命令了,都标准化了)
- 灵活:即使最复杂的应用也可以集装箱化
- 轻量级:容器利用并共享主机内核
- 便携式:可以在本地构建,部署到云,并在任何地方运行
docker带来的好处
- 开发团队得到的好处:可以完全控制环境,之前这些操作是依赖运维工程师的,现在就不需要依赖他们,更加灵活,也降低了风险。
参考:
慕课网-Java工程师 阶段五 docker应用https://class.imooc.com/sc/83/learn