0
点赞
收藏
分享

微信扫一扫

docker概述


微服务架构架构总体讲究的是面向服务快速开发和快速部署。使用Spring Boot框架可以有效地完成快速开发的任务,那么怎样才能够更好的完成快速部署的的任务呢?本章将对一个虚拟化封装部署工具Docker进行讲解。

Docker概述

什么是docker

Docker 是一个开源的应用容器引擎,他基于go语言开发,遵从Apache2.0协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的linux机器上,也可以实现虚拟化。Dokcer容器完全使用沙箱机制,相互之间不会有任何接口。保证了容器之间的安全性。
对于初学者来说,Docker社区版就可以满足需求,所以本书对Docker社区版的使用进行了讲解。

Docker的特点

Docker作为主流开源容器引擎,其主要特点如下:

  1. 更快速的交付与部署
    开发者可以直接使用一个标准的Docker镜像来构建一套开发容器,开发完成后,运维人员可以直接使用这个容器来部署代码。Docker可以快速创建容器以及快速迭代应用程序,并让整个过程全程可见。使得团队中其他成员更容易理解应用程序是如何创建和工作的。Docker容器轻,且启动速度快,可以大量的节约开发,测试,部署的时间。
  2. 更高效的虚拟化
    Docker容器在运行时,不需要额外的虚拟机程序的支持。由于他是内核级的虚拟化,所以可以实现更高的性能和效率。
  3. 更轻松的迁移和扩展
    Docker几乎可以在任何平台上运行,包括虚拟机,物理机,共有云,私有云,个人计算机和服务器等。这种良好的兼容性可以让用户把应用程序从一个平台直接迁移到另外一个平台,十分有利于应用的迁移和扩展
    4.更简单的管理
    使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有修改都以增量的方式被分发和更新,从而实现自动化且高效的管理。

Docker与虚拟机的区别

了解了Docker的概念和特点之后,相信许多人对Dopcker与虚拟机的区别产生了疑惑,那么他们到底有什么不同呢?下面通过一张图来说明两者的主要区别

docker概述_开发者


如图对比中可以看出,虚拟机是运行在每个应用层级的客户端操作系统上的,这是资源密集型的。由于磁盘镜像和应用程序的操作系统相互交叉,所以导致虚拟机对系统的依赖性很强。一旦系统出现问题,虚拟机依赖的文件以及安全补丁登都可能会出现文件丢失的情况。、

Docker中的容器是基于进程的隔离,多个容器可以共享单个内核,并且创建Docker容器的镜像所需要的配置并不依赖宿主系统。正是因为容器之间配置的间隔性,容器之间就没有配置交叉,所以Docker的应用可以运行在任何地方。

## Docker的安装方式

这里只写Docker的一些设置

1. 配置Docker开机启动

sudo systemctl enable docker

2.配置当前用户的Docker权限

-a -G

Docker的运行机制

Docker的引擎

Docker Engine(Docker引擎)是Docker的核心部分,使用的是客户端-服务器(c/s)架构模式,其主要组成部分如图所示

docker概述_开发者_02


从图中可以看出,Docker Engine中包含了三个核心组件(DOcker CLI, REST API, docker daemon),这三个组件的具体说明如下:

  • docker CLI(command line interface):表示Docker命令行接口,开发者可以在命令行的相关指令与DOcker守护进程进行交互,从而管理注入image(镜像),container(容器),network(网络)和data volumes(数据卷)等实体
  • REST API:表示应用程序的API接口,开发者通过API接口可以与DOcker的守护进程进行交互,从而指示后台进行相关操作。
  • docker daemon:表示dockeer 的服务端组件,他是docker架构中运行在后台的一个守护进程,可以接受并处理来自命令行的命令接口以及API接口的指令,然后进行相关的后台操作。
    对于开发者来说,既可以使用编写好的脚本文件通过REST API来实现与Docker进程交互,也可以直接使用Docker相关指令,通过命令行接口与Docker进程交互,而其他的Docker应用则是通过API和CLI进行交互的。

Docker架构

docker概述_应用程序_03


DOcker的架构主要包括Client,DOCKER_HOST和register三部分,具体如下:

1. client客户端,也就是Docker Engine中介绍的docker CLI。开发者通过这个客户端使用docker的相关指令与Docker守护进程进行交互,从而继续Docker镜像的创建,拉取和运行等操作。

2.DOCKER_HOST(docker主机)

DOCKER HOST即Docker引擎运行的主机

3. REgistry(注册中心)

Registry即Docker注册中心,实际就是Docker的镜像仓库,默认是用Docker官方远程注册中心DOcker Hub,也可以使用开发者搭建的本地仓库。Registry中包含了大量的镜像,这些镜像可以是原来官网基础镜像,也可以是其他开发者上传的镜像。

我们实际使用Docker时,除了设计途中三个主要部分,还会涉及很多Dokcer Objects(Docker 对象), 例如 images(镜像), Containers(容器),Networks(网络),Volumes(数据卷),Plugins(插件)登。其中Images和Containers说明如下:

  • images
    DOcker镜像只是一个可读的模板,包含了一些创建Docker容器的操作指令。通常情况下Docker容器是基于另一个基础镜像创建的,并且新创间的镜像会额外包含一些功能配置。
  • containers:
    Docker容器属于镜像的一个可运行实例(镜像与实例的关系类似于类与对象的关系),开发者可以通过API接口或者CLI命令行接口来创建,运行,停止,移动,删除一个容器,也可以将一个容器连接到一个或者多个网络中,将数据存储与容器进行关联。

Docker底层技术

现在我还没有到那一步。


举报

相关推荐

0 条评论