【Docker】进阶之路:(二)Docker简介

【Docker】进阶之路:(二)Docker简介

  • 什么是 Docker
  • Docker 由来与发展历程
  • Docker的架构与组成
  • Docker容器生态
    • 容器核心技术
      • 容器规范
      • 容器平台技术
  • 为什么使用Docker
    • Docker的应用场景

什么是 Docker

简单地讲,Docker就是一个应用容器引擎,通过Docker,管理员可以非常方便地对容器进行管理。Docker基于Go语言开发,并且遵从Apache 2.0开源协议。
Docker提供了对容器镜像的打包封装功能。利用Docker,开发者可以将他们开发的应用系统以及依赖打包起来,放到一个轻量级的、可移植的容器中,然后发布到任何的Linux或者Windows上面。这样的话,Docker就统一了整个开发、测试和部署的环境和流程,极大地减少运维成本。
Docker完全使用沙箱机制,容器之间不会有任何的接口。

Docker 由来与发展历程

2010年,几个大胡子年轻人在美国旧金山成立了一家做PaaS(Platform-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 Initiative(OCI) 的组织,其目是制定开放的容器规范。OCI已发布了两个规范:runtime spec 和 image format spec。 有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行,保证了容器的可移植性和互操作性。

容器平台技术

容器核心技术使得容器能够在单个 host 上运行,而容器平台技术能够让容器作为集群在分布式环境中运行。容器平台技术包括容器编排引擎、容器管理平台和基于容器的 PaaS。下面将介绍这几块内容。

容器编排引擎

基于容器的应用一般会采用微服务架构。在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过 API 对外提供服务。为了保证应用的高可用,每个组件都可能会运行多个相同的容器。这些容器会组成集群,集群中的容器会根据业务需要被动态地创建、迁移和销毁。
这样一个基于微服务架构的应用系统实际上是一个动态的可伸缩的系统。这对我们的部署环境提出了新的要求,我们需要有一种高效的方法来管理容器集群,这就是容器编排引擎要负责的工作。
所谓编排(orchestration),通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机地组合成微服务应用,以实现业务需求。

为什么使用Docker

Docker的应用场景

Docker提供轻量级的虚拟化服务。每个Docker容器都可以运行一个独立的应用。例如,用户可以将Java应用服务器Apache Tomcat运行在一个容器中,而MySQL数据库服务器运行在另外一个容器中。
目前,Docker的应用场景非常广泛,主要有以下几种。

  1. 简化配置
    这是Docker的初始目的。Docker将应用程序代码、运行环境以及配置进行打包。用户在部署时,只要以该镜像为模板创建容器即可。实际上,这实现了应用环境和底层环境的解耦。
  2. 简化部署过程
    Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,即可实现虚拟化。
    Docker改变了传统的虚拟化方式,使得开发者可以直接将自己开发的应用放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数分钟就能完成。
  3. 节省开支
    另一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker改变了高性能必然高价格的思维定势。Docker与云计算机的结合,不仅解决了硬件管理的问题,也改变了虚拟化的方式。

Docker的广泛应用极大地降低了IT设施的运维成本。具体来说,主要体现在以下方面。

  • 轻量级的虚拟化。与传统的服务器或者主机虚拟化相比,Docker实现了更加轻量级的虚拟化。这对于应用部署来说,可以减少部署的时间成本和人力成本。
  • 标准化应用发布。Docker容器包含了运行环境和可执行程序,可以跨平台和主机使用。
  • 节约启动时间。传统的虚拟主机的启动一般是分钟级,而Docker容器启动是秒级。
  • 节约存储成本。以前一个虚拟机至少需要几个GB的磁盘空间,而Docker容器可以减少到MB级。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/211252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式(9):扩展正则表达式

正则表达式(9):扩展正则表达式 小结 本博文转载自 前文中一直在说,在Linux中,正则表达式可以分为”基本正则表达式”和”扩展正则表达式”。 我们已经认识了”基本正则表达式”,现在,我们来认…

T天池SQL训练营(五)-窗口函数等

–天池龙珠计划SQL训练营 5.1窗口函数 5.1.1窗口函数概念及基本的使用方法 窗口函数也称为OLAP函数。OLAP 是OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。 为了便于理解,称之为窗口函数。常规的SELECT语句都是对整张表进…

Python:核心知识点整理大全11-笔记

目录 ​编辑 6.2.4 修改字典中的值 6.2.5 删除键—值对 注意 删除的键—值对永远消失了。 6.2.6 由类似对象组成的字典 6.3 遍历字典 6.3.1 遍历所有的键—值对 6.3.2 遍历字典中的所有键 往期快速传送门👆(在文章最后): 6.…

风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端

风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端 目 录 1、产品规格 2、接口使用 2.1、侧面接口功能 2.2、背面接口功能 2.3、面板接口功能 3、功能使用 1、产品规格 输入电源: 12V~24V的直流电源 网络接口&am…

PID控制参数整定(调节方法)原理+图示+MATLAB调试

PID控制参数整定(调节方法)原理图示MATLAB调试 Chapter1 PID控制参数整定(调节方法)原理图示MATLAB调试序一、P参数选取二、I的调节三、D的调节四、总结 Chapter2 PID参数调整,个人经验(配输出曲线图&#…

【51单片机系列】独立按键介绍

本文是关于独立按键的介绍及使用。首先介绍了按键,包括什么是按键及使用按键时如何实现软件消抖。然后使用proteus仿真实现独立按键控制LED指示灯的操作。 之前的LED、蜂鸣器、数码管中IO口都是作为输出使用,这里通过独立按键实验介绍IO口作为输入的使用…

Edge 中的msedgewebview2总想联网

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 使用Edge浏览器的时候,右下角火绒总会弹出“msedgewebview2”想要联网的弹窗,如下 点击发起程序,找到路径如下: C:\Program Files (x86)\Microsoft\…

zabbix 进阶

zabbix的字段发现机制: zabbix客户端主动和服务端联系,将自己的地址和端口发送服务端实现字段添加监控主机。 客户端是主动一方。 缺点:自定义网段中主机数量太多,登记耗时会很久,而且这个自动发现机制不是很稳定。…

【Docker一】Docker架构、镜像操作和容器操作

一、docker基本管理和概念 1、概念 docker:开源的应用容器引擎。基于go语言开发的。运行在Linux系统中的开源的轻量级的“虚拟机” docker的容器技术可用在一台主机上轻松到达为任何应用创建一个轻量级到的,可移植的,自给自足的容器 dock…

免费的数据采集软件,最新免费的几款数据采集软件【2024】

在当今数字化时代,数据是企业决策和业务发展的关键。而如何高效获取数据成为许多企业和研究机构的关注焦点。本文将深入探讨数据采集软件的种类。帮助大家选择最适合自己需求的数据采集工具。 数据采集软件种类 在众多数据采集软件中,有一类强大而多样…

postgresql自带指令命令系列二

简介 在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量 export PATH/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix [指定安装目录] 中的prefix参…

基于ssm理发店会员管理系统的设计和实现论文

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此理发店会员信息…

Cache的基本概念和原理

目录 一. Cache的工作原理二. 局部性原理三. 性能分析四. 待解决的问题 \quad 一. Cache的工作原理 \quad 存储系统存在的问题 虽然双端口RAM、多模块存储器提高存储器的工作速度, 但是优化后的速度与CPU差距依然很大, 为了改善这个问题就出现了Cache, 来解决存储器与CPU速度不…

ubuntu安装docker及docker常用命令

docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 文章目录 docker命令docker镜像相关命令docker容器相关命令数据卷ubuntu安装docker docker命令 #启动,停止,重启docker systemctl start docker systemctl stop docker s…

SpringBoot的依赖管理和自动配置

与其明天开始,不如现在行动! 文章目录 1 依赖管理机制2 自动配置机制2.1 初步理解2.2 完整流程 💎总结 1 依赖管理机制 为什么导入starter-web后所有相关依赖都会导入进来? 开发什么场景,导入什么场景启动器-spring-bo…

Redis 环境搭建2

文章目录 第2关:使用 Redis 第2关:使用 Redis 本文是接着上篇文章写的第二关代码,部分人再进入第二关时不会保留第一关的配置的环境,可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

问题:batchnormal训练单个batch_size就会报错吗

Batch Normalization(批标准化)是一种深度学习中的正则化技巧,它可以改进网络的训练过程。在训练神经网络时,Batch Normalization可以帮助解决内部协变量偏移(Internal Covariate Shift)的问题。 在标准的…

pytorch serve开始-Getting started

官网链接 Getting started — PyTorch/Serve master documentation 安装TorchServe和torch-model-archiver 安装依赖 注意::对于Conda,运行Torchserve需要Python >3.8。 对于基于Debian的系统/ MacOS CPU python ./ts_scripts/install_dependencies.py 对…

【Hadoop】高可用集群搭建

知识目录 一、写在前面💕二、Zookeeper安装✨三、Hadoop配置✨四、Hadoop HA自动模式✨五、HA脚本分享✨七、结语💕 一、写在前面💕 大家好!这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想,希望能帮助到大…

Notes数据直接在Excel中统计

大家好,才是真的好。 我希望你看过前面两篇内容《Domino REST API安装和运行》和《Domino REST API安装和运行》,因为今天我们正是使用REST API方式在Excel中查询和统计Notes数据。 不过首先你得知道一个OData协议,全名Open Data Protocol(…