在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Docker容器引擎实现原理及其应用,Docker是一个开放源代码软件项目能让应用程序布署在软件容器下的工作可以自动化进行。Docker建议单个容器只运行一个应用程序或进程,形成了一个分布式的应用程序模型,在这种模型下应用程序或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得比较简单,同时也提高了程序的内省性。

一、Docker是什么?
Docker是一个开源的应用容器引擎,基于go语言开发并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的Linux 机器上,也可以实现虚拟化。Docker容器完全使用沙箱机制相互之间不会有任何接口,这保证了容器之间的安全性。
Docker诞生于2013年初,目前有两个版本,Community Edition(CE,社区版)和Enterprise Edition(EE,企业版)。其中Docker社区版是免费开源的,对于个人和小团队来说是比较理想的选择;Docker企业版则是收费的,是专门为企业和大型IT团队提供的,用于要求比较严格的商业应用中。
Docker利用Linux核心中的资源分离机制来建立独立的软件容器。通过本课程的学习,你将掌握Docker的各个核心组件、功能及其原理,掌握Docker的特性,从而帮助你熟悉Docker并将其运用起来。
Docker镜像、Docker容器和Docker仓库是Docker技术的三大核心概念,需要掌握虚拟化、Docker架构等基础概念,环境安装,Docker容器、Docker镜像制作以及Docker仓库、Docker Swarm的搭建,生产环境的部署开发等实际操作,深入解析Docker技术栈。
二、Docker特点有哪些?
Docker 作为当前主流的一个开源容器引擎,其主要特点如下:
1、更快速的交付和部署
开发者可以使用一个标准的Docker镜像来构建一套开发容器,开发完成之后运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器以及快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器轻,且启动速度快,可以大量地节约开发、测试和部署的时间。
2、更高效的虚拟化
Docker 容器在运行时不需要额外的虚拟机程序的支持。由于它是内核级的虚拟化,所以可以实现更高的性能和效率。
3、更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人计算机和服务器等。这种良好的兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台,十分有利于应用的迁移和扩展。
4、更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
除上述几个特点,Docker还具有实现逻辑分离、适合与面向服务的架构配合使用等特点。
三、Docker架构包括几部分?
Docker架构主要包括Client、DOCKER_HOST和Register三部分,关于这三部分的具体说明如下:
1、Client(客户端)
Client即Docker客户端,也就是上一小节Docker Engine中介绍的docker CLI。开发者通过这个客户端使用Docker的相关指令与Docker守护进程进行交互,从而进行Docker镜像的创建、拉取和运行等操作。
2. DOCKER_HOST(Docker主机)
DOCKER_HOST即Docker内部引擎运行的主机,主要指Docker daemon(Docker守护进程)。可以通过Docker守护进程与客户端还有Docker的镜像仓库Registry进行交互,从而管理Images(镜像)和Containers(容器)等。
3、Registry(注册中心)
Registry即Docker注册中心,实质就是Docker镜像仓库,默认使用的是Docker官方远程注册中心Docker Hub,也可以使用开发者搭建的本地仓库。Registry中包含了大量的镜像,这些镜像可以是官网基础镜像,也可以是其他开发者上传的镜像。
在实际使用 Docker 时除了会涉及图中的 3 个主要部分外,还会涉及很多Docker Objects(Docker对象),例如Images(镜像)、Containers(容器)、Networks(网络)、Volumes (数据卷)、Plugins(插件)等。其中常用的两个对象Image和Containers的说明:
(1)Images(镜像)
Docker镜像就是一个只读的模板,包含了一些创建Docker容器的操作指令。通常情况下,一个Docker镜像是基于另一个基础镜像创建的,并且新创建的镜像会额外包含一些功能配置。例如:开发者可以依赖于一个 Ubuntu 的基础镜像创建一个新镜像,并可以在新镜像中安装Apache等软件或其他应用程序。
(2)Containers(容器)
Docker 容器属于镜像的一个可运行实例(镜像与容器的关系其实与 Java 中的类与对象相似),开发者可以通过API接口或者CLI命令行接口来创建、运行、停止、移动、删除一个容器,也可以将一个容器连接到一个或多个网络中,将数据存储与容器进行关联。
通过学习Docker的相关内容,理解Docker中的核心技术原理,深入学习并使用Docker的核心功能,利用Docker搭建开发环境,利用Docker实现项目部署与运维。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
零基础Java在线学习方式有哪些?
零基础Java在线学习方式有哪些?总结起来,基本上就是四种方式,即多阅读相关书籍,观看学习视频,实战练习敲代码,与在线老师交流沟通。无论是在线自学也好,还是报线上的培训班,最有效的Java学习方式,也就是以上这些。下面小编来详细为大家讲解Java在线学习具体要怎么做。
7115
2019-09-29 10:31:58
Java是什么?Java开发原理
在互联网行业经常会听到Java工程师,写Java的,在招聘和就业时Java工程师也是非常热门和抢手的岗位,那么Java究竟是什么呢?Java是一种为多个平台生成软件的编程语言。由Sun Microsystems的前计算机科学家James A. Gosling在20世纪90年代中期开发的。编译的代码可在大多数操作系统上运行。
5343
2020-05-26 10:07:35
Java有什么优点?Java开发优势
Java有什么优点?Java作为目前各大互联网公司和编程语言中非常重要和常见的编程语言之一,被许多行业所运用
7962
2020-05-26 10:11:30
Java程序的开发与运行原理解析
可能刚刚接触编程的初学者会发现,编写一个Java程序其实很简单,但是Java程序的运行过程却是非常复杂的。关于Java程序工作原理这部分知识,虽然不要求编程学习者完全掌握,你但是至少需要了解它的大致过程。下面小编将好好介绍一下Java程序的开发与运行原理,大致分为以下三步:编写源文件、编译以及运行。
6596
2020-08-12 16:59:55
Java基础语法需要学习哪些知识?
Java基础语法内容包含java运行环境、HelloWorld案例、关键字&标识符、常量&变量、数据类型转换、运算符、方法入门、JDK9新特性-Jshell、选择结构-if语句-switch语句、循环结构-for-while-do..while、开发工具-IDEA、方法复习、方法重载、数组、描述类介绍与使用等内容。
5188
2020-12-01 14:53:05
