茂名营销网站开发,网站内部资源推广方法,站酷网站源码,百度客户管理系统登录【Docker】进阶之路#xff1a;#xff08;二#xff09;Docker简介 什么是 DockerDocker 由来与发展历程Docker的架构与组成Docker容器生态容器核心技术容器规范容器平台技术 为什么使用DockerDocker的应用场景 什么是 Docker
简单地讲#xff0c;Docker就是一个应用容器… 【Docker】进阶之路二Docker简介 什么是 DockerDocker 由来与发展历程Docker的架构与组成Docker容器生态容器核心技术容器规范容器平台技术 为什么使用DockerDocker的应用场景 什么是 Docker
简单地讲Docker就是一个应用容器引擎通过Docker管理员可以非常方便地对容器进行管理。Docker基于Go语言开发并且遵从Apache 2.0开源协议。 Docker提供了对容器镜像的打包封装功能。利用Docker开发者可以将他们开发的应用系统以及依赖打包起来放到一个轻量级的、可移植的容器中然后发布到任何的Linux或者Windows上面。这样的话Docker就统一了整个开发、测试和部署的环境和流程极大地减少运维成本。 Docker完全使用沙箱机制容器之间不会有任何的接口。
Docker 由来与发展历程
2010年几个大胡子年轻人在美国旧金山成立了一家做PaaSPlatform-as-a-Service平台即服务平台的公司并且起名为dotCloud。虽然dotCloud公司曾经获得过一些融资但随着大厂商包括微软、谷歌以及亚马逊等杀入云计算领域dotCloud公司举步维艰。 幸运的是上帝每关上一扇门就会打开一扇窗。2013年初dotCloud公司的工程师们决定将他们的核心技术Docker开源这项技术能够将Linux容器中的应用代码打包轻松地在服务器之间迁移。 令所有人意想不到的是开源之后Docker技术风靡全球于是dotCloud公司决定改名为Docker全身心投入到Docker的开发中。2014年8月Docker公司宣布把PaaS业务dotCloud出售给位于德国柏林的PaaS服务提供商cloudControl自此dotCloud和Docker分道扬镳。
Docker的架构与组成
Docker采用C/S架构即客户端/服务器架构。管理员通过Docker客户端与Docker服务器进行交互。Docker服务器端负责构建、运行和分发Docker镜像。用户可以把Docker的客户端和服务器部署在同一台机器上面也可以分别部署在不同的机器上面两者之间通过各种接口进行通信。 Docker的典型体系架构如图所示。
Docker容器生态
容器核心技术
容器核心技术是指能够让 container 在 host 上运行起来的那些技术。 这些技术包括容器规范、容器 runtime、容器管理工具、容器定义工具、Registry以及容器OS下面分别介绍。
容器规范
容器不仅有 Docker还有如 CoreOS 的 rkt等其他容器。为了保证容器生态的健康发展保证不同容器之间能够兼容包括Docker、CoreOS、Google等在内的若干公司共同成立了 Open Container InitiativeOCI 的组织其目是制定开放的容器规范。OCI已发布了两个规范runtime spec 和 image format spec。 有了这两个规范不同组织和厂商开发的容器能够在不同的 runtime 上运行保证了容器的可移植性和互操作性。
容器平台技术
容器核心技术使得容器能够在单个 host 上运行而容器平台技术能够让容器作为集群在分布式环境中运行。容器平台技术包括容器编排引擎、容器管理平台和基于容器的 PaaS。下面将介绍这几块内容。
容器编排引擎
基于容器的应用一般会采用微服务架构。在这种架构下应用被划分为不同的组件并以服务的形式运行在各自的容器中通过 API 对外提供服务。为了保证应用的高可用每个组件都可能会运行多个相同的容器。这些容器会组成集群集群中的容器会根据业务需要被动态地创建、迁移和销毁。 这样一个基于微服务架构的应用系统实际上是一个动态的可伸缩的系统。这对我们的部署环境提出了新的要求我们需要有一种高效的方法来管理容器集群这就是容器编排引擎要负责的工作。 所谓编排orchestration通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎容器被有机地组合成微服务应用以实现业务需求。
为什么使用Docker
Docker的应用场景
Docker提供轻量级的虚拟化服务。每个Docker容器都可以运行一个独立的应用。例如用户可以将Java应用服务器Apache Tomcat运行在一个容器中而MySQL数据库服务器运行在另外一个容器中。 目前Docker的应用场景非常广泛主要有以下几种。
简化配置 这是Docker的初始目的。Docker将应用程序代码、运行环境以及配置进行打包。用户在部署时只要以该镜像为模板创建容器即可。实际上这实现了应用环境和底层环境的解耦。简化部署过程 Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中然后发布到任何流行的Linux机器上即可实现虚拟化。 Docker改变了传统的虚拟化方式使得开发者可以直接将自己开发的应用放入Docker中进行管理。方便快捷已经是Docker的最大优势过去需要用数天乃至数周的任务在Docker容器的处理下只需要数分钟就能完成。节省开支 另一方面云计算时代到来使开发者不必为了追求效果而配置高额的硬件Docker改变了高性能必然高价格的思维定势。Docker与云计算机的结合不仅解决了硬件管理的问题也改变了虚拟化的方式。
Docker的广泛应用极大地降低了IT设施的运维成本。具体来说主要体现在以下方面。
轻量级的虚拟化。与传统的服务器或者主机虚拟化相比Docker实现了更加轻量级的虚拟化。这对于应用部署来说可以减少部署的时间成本和人力成本。标准化应用发布。Docker容器包含了运行环境和可执行程序可以跨平台和主机使用。节约启动时间。传统的虚拟主机的启动一般是分钟级而Docker容器启动是秒级。节约存储成本。以前一个虚拟机至少需要几个GB的磁盘空间而Docker容器可以减少到MB级。