技术交流28群

服务热线

135-6963-3175

微信服务号

Docker 更新时间 2019-1-10 浏览3466次

      如今,Docker的使用非常普遍,尤其是在一线互联网公司中。  Docker技术的使用可以帮助公司快速横向扩展其服务,从而实现灵活部署业务的能力。 随着云服务概念的兴起,Docker的使用场景和范围得到了进一步发展。 如今,随着微服务架构越来越流行,微服务Docker的完美结合使其更易于部署和维护微服务架构。


      本文详细解释了与Docker引入相关的内容,稍后重点介绍了在微服务系统中使用Docker。 在了解Docker之前,让我们考虑几个问题:

     1.什么是Docker?  

     2.为什么使用Docker?它有什么优势? 带着这些问题,我们来看看以下内容。


什么是Docker

       Docker是世界领先的软件容器平台。 开发人员可以使用Docker消除协作编码过程中“在我的机器上工作”的问题。 操作和维护人员可以使用Docker在隔离的容器中并行运行和管理应用程序,以获得更好的计算密度。 企业可以使用Docker构建敏捷的软件交付管道,并以更快的速度,更高的安全性和可靠的信誉为Linux和Windows Server应用程序发布新功能。


      Docker是Linux容器的软件包,提供了一个简单易用的容器接口。 它是当前最受欢迎的Linux容器解决方案。  Docker将应用程序和程序的依赖关系打包在一个文件中。 运行此文件将生成一个虚拟容器。 程序在此虚拟容器中运行,就好像它在真实的物理计算机上运行一样。 使用Docker,无需担心环境问题。


      一般来说,Docker的界面非常简单,用户可以轻松创建和使用容器,并将自己的应用程序放入容器中。 容器也可以执行版本管理,复制,共享和修改,就像管理普通代码一样。


      Docker最初是dotCloud创始人Solomon Hykes在法国期间发起的内部公司项目。 这是基于dotCloud多年的云服务技术的一项创新。 它于2013年3月根据Apache 2.0许可协议开源。主要项目代码在GitHub上。 进行维护。  Docker项目后来加入Linux基金会,并建立了开放容器联盟(OCI)。


      自从开源以来,Docker就受到了广泛的关注和讨论。 到目前为止,其GitHub项目拥有超过46,000个星标和10,000多个分叉。 甚至由于Docker项目的普及,在2013年底,dotCloud决定将其名称更改为Docker。  Docker最初是在Ubuntu 12.04上开发和实现的; 红帽从RHEL 6.5开始支持Docker。 谷歌还在其PaaS产品中广泛使用了Docker。


 

为什么使用Docker

      除了在容器中运行应用程序外,它基本上不消耗额外的系统资源,从而提高了应用程序的性能,并且系统开销尽可能小。 按照传统的虚拟机方式,需要启动10个不同的应用程序,而Docker仅需要启动10个独立的应用程序。


  具体来说,Docker在以下方面具有很大的优势。


  1.更快的交付和部署


      对于开发人员以及运维人员来说,最希望的是一次创建或配置它并在任何地方运行。


      开发人员可以使用标准映像来构建一组开发容器。 开发完成后,运维人员可以直接使用此容器部署代码。  Docker可以快速创建容器,快速迭代应用程序,并使整个过程可见,从而使团队的其他成员更容易理解应用程序的创建和工作方式。  Docker容器非常轻便,快速! 容器的启动时间以秒为单位,从而大大节省了开发,测试和部署的时间。


  2.更有效的虚拟化


      Docker容器的操作不需要其他虚拟机管理程序支持。 它是内核级虚拟化,因此可以实现更高的性能和效率。


  3.易于迁移和扩展


      Docker容器几乎可以在任何平台上运行,包括物理机,虚拟机,公共云,私有云,个人计算机,服务器等。这种兼容性允许用户将应用程序直接从一个平台迁移到另一个平台。


  4.更简单的管理


      使用Docker,只需进行少量修改即可替换大量以前的更新。 所有修改都以增量方式分发和更新,从而实现自动化和高效的管理。


    Docker与VM

      从下图可以看出,VM是在主机上运行的完整操作系统。 运行自己的操作系统的VM将占用更多的CPU,内存和硬盘资源。  Docker与VM的不同之处在于,它仅包含应用程序和相关库。 它基于libcontainer,在主机上运行,并且处于隔离环境中。 这使Docker更加轻巧和高效。 启动容器仅需几秒钟即可完成。 由于重量轻,资源占用少,因此可以轻松地将Docker应用于构建标准化应用程序。 但是Docker目前还不完善。 例如,隔离效果不如VM,并且共享了主机操作系统的一些基本库。 网络配置功能相对简单,主要基于桥接; 并且查看日志并不方便且灵活。

docker搭建

   

      在容器的基础上,Docker进一步进行了封装,从文件系统,网络互连到进程隔离等,极大地简化了容器的创建和维护。 这使得Docker技术比虚拟机技术更具可移植性和速度。


      作为一种新兴的虚拟化方法,Docker与传统的虚拟化方法相比具有许多优势。  Docker容器的启动可以在几秒钟内完成,这比传统的虚拟机方法要快得多。  Docker具有很高的系统资源利用率,并且数千个Docker容器可以同时在主机上运行。


  Docker是具有两个主要概念的CS架构:


  Docker daemon:在主机Docker守护程序上运行,用户通过Docker客户端与Docker守护程序进行交互(Docker命令)

  Docker client:Docker命令行工具是用户使用Docker的主要方式。  Docker客户端与Docker守护程序通信并将结果返回给用户。  Docker客户端还可以通过套接字或RESTful API访问远程Docker守护程序

docker包含什么


在了解了Docker的组成之后,让我们了解Docker的三个主要概念:


    Docker映像:该映像为只读映像,其中包含需要运行的文件。 镜像用于创建容器,一个镜像可以运行多个容器。 镜像可以通过Dockerfile创建或从Docker Hub /注册表下载。

  Docker容器:容器是Docker的运行组件。 启动图像是一个容器。 容器是一个隔离的环境。 多个容器不会相互影响,从而确保容器中的程序在相对安全的环境中运行。

  Docker仓库:共享和管理Docker映像。 用户可以上传或下载以上图像。 官方地址是https://registry.hub.docker.com/,或者您可以构建自己的私有Docker仓库。

  该图像等效于打包的版本。 映像启动后,它将在容器中运行,而仓库是安装和存储映像的地方。