Docker从入门到应用(一):Doker简介

Docker为什么会出现

  • 作为一个开发人员,我们经常会遇到一个问题,就是点击run运行之后,在自动的机器上可以正常运作,在其他人员的机器上或者线上环境中运行经常会出现意想不到的问题。项目各种版本的迭代,每个版本的运行环境也可能会出现不同。每次在一台新电脑上进行开发,都要安装各种环境和软件,耗时又耗力,相当麻烦,换一台电脑就要重新来一变。很多人想到,能不能从根本上解决问题,软件可以带环境安装,也就是说,安装的时候,把原始环境一模一样的复制过来,解决因环境不一致导致的“在我的电脑上可以运行的问题”

Docker是什么

  • Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。

  • Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作

    用一句话来说,Docker是解决了运行环境和配置问题的软件容器,Docker方便做持续继承并有助于整体发布的容器虚拟化技术

Docker虚拟化技术

  • 与传统的额虚拟化方式相比,例如传统的虚拟技术,传统的虚拟机技术是虚拟一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用程序。(vmware即是如此),此种方式所占用的系统资源多,冗余步骤多,因为运行的是一个完整的操作系统,因此,启动也慢。
  • 由于上述虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源

Docker优点:一次构建,处处运行

  1. 更快速的应用交付和部署
    传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

  2. 更便捷的升级和扩容
    随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

  3. 更简单的系统运维
    应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

  4. 更高效的计算资源利用
    Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

Docker 下载

下一篇 Docker从入门到应用(二):docker安装

猜你喜欢

转载自blog.csdn.net/Hong_pro/article/details/123177462