Docker能否成为下一个“Linux”?

Linux操作系统在过去的20年里给数据中心带来了革命性的变化,今天它是应用程序托管平台无可争议的领导者。很难想象,将任何关键任务的生产工作负载部署到Linux以外的任何平台。

当Docker使Linux容器流行起来,这与几年前在打包、部署和托管应用程序方面开始的革命何其相似。此后,整个行业的容器使用呈指数级增长,并且与日俱增。

正如我们无法想象将任何关键应用程序部署到非Linux操作系统上一样,容器也是如此:任何应用程序都必须是容器,以满足未来Web规模的需求(即安全性、可伸缩性、平台无关性和易移植性)。这些容器现在是,未来也将是运行任何关键应用程序和工作负载的新一代“Linux”。

容器采用趋势

根据Datadog于2018年6月更新的调查显示,有一种趋势是,25%的公司已经采用Docker,其余公司正在迅速追赶。这里有详细的调查数据。

容器和编排

Kubernetes、OpenShift、Apache Mesos和Docker Swarm对容器提供了极好的编排支持,使得管理一个数千个容器的平台或基础设施要容易得多。在编排工具提供的自动化功能的帮助下,一名工程师就可以管理容器化应用程序的异构部署。

Kubernetes正在统治Docker容器的编排世界,谷歌是它的最初创建者,CNCF是所有者。Kubernetes在整个行业中也拥有最好的社区支持和极好的适应性。

为任何容器化应用程序提供编排支持的一些特性:

  • 基于资源利用率的水平自动伸缩。
  • 与云基础设施紧密集成时,应用程序实例可以无限伸缩。
  • 应用程序实例的自愈。
  • 在线升级。
  • 金丝雀升级。

容器与微服务

作为编排工具,Kubernetes再次主导微服务部署领域,用于承载和运行容器支持的微服务,它是最著名、最受欢迎的平台之一。

所有标识的微服务首先被转换为Docker容器,然后转到Kubernetes平台进行部署,这使得它们在整个生命周期内快速部署并易于管理。

基于容器的微服务在伸缩和自愈场景下更容易,启动和服务工作负载更快。

非常规应用中的容器采用

在采用容器的过程中发生了许多不可思议的事情;曾经被认为不可能在容器中运行的应用程序现在正在迁移到容器中,并且现在可以在容器化平台中使用。

数据库

几年前,数据库被认为是保持在容器技术之外的东西,但今天我们有了NuoDB,它是一个容器和云原生数据库,专门设计和开发用于在容器上运行,以支持数据库级别的WebScale功能。

Oracle 12c现在可以在Docker仓库的官方Docker镜像中预先配置。

数据库层容器化令人由衷地兴奋,这将使应用程序更容易WebScale,因为按需扩展数据库(部署在物理服务器上)的限制将消失,数据库在容器内运行以及部署在业务流程引擎上, 将能够在需要时轻松地与应用程序实例一起扩展。

电信行业中容器化的电信网络组件

电信行业向使用的可编程网络转变的势头正在加快,这将帮助所有CSP以虚拟化方式运行所有网络功能,而不是在传统昂贵的硬件上运行这些功能,同时大幅降低运营成本。这也将使所有CSP能够在需求增加时以完全自动化的方式快速扩展其网络。然而,容器相对于VM的优点已经在应用程序中得到了验证,因此整个行业都非常希望telco VNFs获得相同的优点。

电信行业向使用SDN-NFV的可编程网络转变的势头正在加快,这将帮助所有CSP显著降低其运营成本,同时以虚拟化的方式运行所有网络功能,而不是在传统昂贵的硬件运行。这也将使所有CSP能够随着需求的增加,以完全自动化的方式迅速扩展其网络。然而,容器比虚拟机的好处已经在应用程序世界中得到了证明,因此整个行业对电信VNF也获得同样的益处有着非常高的兴趣。

伴随着这些趋势,在应用程序和虚拟化网络级别上,电信世界将被容器化平台统治的日子不远了。

基于容器的大数据平台

在大数据世界中,HortonWorks的HDP 3.0数据平台的新版本现在使用Docker容器来运行其内部组件(YARN容器、Web应用程序和HDP服务)。Hadoop集群是一个自我管理的集群,完全支持现代和标准的集群应用程序,因此,大数据平台能够在容器上运行并由编排工具(集群中的集群!!)管理,在之前这是一个有争议的话题。但是由于我们已经有了容器化服务的新版本,所以在不久的将来,我们将在Kubernetes平台中运行Hadoop集群也就不足为奇了。

云和容器

随着容器的普及,所有云服务提供商(AWS、Azure、GCE、Oracle、OpenStack等)也意识到他们必须提供并支持本地容器和Kubernetes编排服务。今天,我们看到几乎所有的云提供商都拥有自己的本地容器和编排服务/平台。以下是云计算公司提供的一些本地容器平台示例:

  • AWS — KOPs
  • 谷歌云- GKE
  • Azure - Azure Kubernetes服务
  • RedHat OpenStack - RedHat OpenShift
  • Oracle云- Oracle Kubernetes引擎

同样,这种方式为我们提供了一个清晰的趋势,即使组织正在迁移到云基础设施,以取代其遗留的本地数据中心,容器仍然是部署和运行应用程序的首选。

基于容器的私有云部署

当我们谈论云和容器时,已经有云在容器上运行了。

OpenStack无疑是私有云领域的赢家,整个私有云托管世界由OpenStack统治,为全球各地的组织提供云计算的强大功能。

然而,现在OpenStack的新版本可以以一种容器化的方式部署。这使得整个私有云部署并运行在容器中,令人难以置信。

随着容器采用率的指数级增长,以及软件行业和各个产品部门的根本性变化,容器现在是、未来也将是承载和运行各种工作负载的新Linux,这一说法变得更加现实。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Linux下Docker CE使用从包中安装的方式详解

    使用从包中安装的方式,在Linux上安装Docker CE 1.查看Linux系统信息nuame -a 我的是Debian, amd64 2.查看Linux 系统发行版的名称 lsb_release -cs 我的是stretch 3.进入到下载包页面https://download.docker.com/linux/ 第一步获取的Debian,点击进入debian>dists 进入了这个连接地址 https://download.docker.com/linux/debian/dists/ 第二

  • docker备份linux系统的命令详解

    tar备份系统 sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz / 更多linux备份方法参考https://www.jb51.net/article/151167.htm 编写dockerflie 新建目录Dockerfile,在Dockerfile目录下编辑Dockerfile脚本,如下内容: FROM scratch COPY rootfs / RUN

  • Linux上创建、列出、删除Docker容器方法总结

    1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个新的容器,并为你提供使用/bin/bash shell访问该容器的权限. # docker run [OPTIONS] <IMAGE NAME> [COMMAND] [ARG...] 例如,下面的命令将使用名为"ubuntu"的图像创建新的docker容器.要列出所有可用图像,请使用docker images命令. # docker run -i -t ubuntu /bin/bash 要退出Do

  • linux使用docker-compose部署软件配置详解

    前言 本篇将分享一些 docker-compose 的配置,可参考其总结自己的一套基于docker的开发/生产环境配置.下面话不多说了,来一起看看详细的介绍吧 安装docker及docker-compose install docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun install docker-compose sudo curl -L https://github.com/docker/co

  • 在Linux上安装和使用Docker的方法

    容器现在风靡于 IT 界 -- 这很好理解.容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都不依赖于某个内核和操作系统.这也是容器与虚拟机之间最大的不同:相比之下,虚拟机是一个运行于宿主机操作系统上的完整的操作系统平台,而容器不是. 容器允许你以一种前所未有的方式扩展交付能力(不管内部还是外部的).例如,你可以快速部署多个 NGINX 实例(甚至可以应用于多个不同的阶

  • Docker基础知识之Linux namespace图文详解

    前言 Docker 是"新瓶装旧酒"的产物,依赖于 Linux 内核技术 chroot .namespace 和 cgroup.本篇先来看 namespace 技术. Docker 和虚拟机技术一样,从操作系统级上实现了资源的隔离,它本质上是宿主机上的进程(容器进程),所以资源隔离主要就是指进程资源的隔离.实现资源隔离的核心技术就是 Linux namespace.这技术和很多语言的命名空间的设计思想是一致的(如 C++ 的 namespace). 隔离意味着可以抽象出多个轻量级的内核

  • Docker能否成为下一个“Linux”?

    Linux操作系统在过去的20年里给数据中心带来了革命性的变化,今天它是应用程序托管平台无可争议的领导者.很难想象,将任何关键任务的生产工作负载部署到Linux以外的任何平台. 当Docker使Linux容器流行起来,这与几年前在打包.部署和托管应用程序方面开始的革命何其相似.此后,整个行业的容器使用呈指数级增长,并且与日俱增. 正如我们无法想象将任何关键应用程序部署到非Linux操作系统上一样,容器也是如此:任何应用程序都必须是容器,以满足未来Web规模的需求(即安全性.可伸缩性.平台无关性和

  • 每天一个linux命令之locate 命令

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行. 1.命令格式: Locate [选择参数] [样式] 2.命令功能: locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locat

  • Docker在CentOS7下不能下载镜像timeout的解决办法(图解)

    今天小编给大家记录下Docker在CentOS7下不能下载镜像timeout的问题,先给大家说下问题的来龙去脉. 问题描述: 昨天买了六个月阿里云服务器的学生机用来部署毕设环境,在鼓捣docker的时候出现问题,docker安装成功并且已经成功启动,如图 但在pull镜像的时候却出现超时无法下载镜像的问题,估计是国内docker官方镜像被墙了,网上找了好久发现要使用国内镜像加速,推荐的有Daocloud和阿里云,我使用的是Daocloud镜像加速,注册了账号之后上方会有一个镜像加速的超链接 点进

  • Centos下编译Linux内核的具体实现方法

    Linux内核编译是一件简单却费事的事.但是独立的编译linux内核会帮助你很好的理解Linux内核的工作机理. 首先编译linux内核我们需要在当前linux操作系统下安装gcc编译器,因为我是Centos distribution版本 yum install gcc 接下来安装依赖环境: yum install ncurses-devel 现在我们以linux-3.18.1内核为例进行编译,假设我当前系统的版本为2.6.32 那么我首先在Linux内核发布的官网上http:/kernel.o

  • VMware下配置Linux系统局域网和外网访问图文教程

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设你装的是一个minimal版本的CentOS,那么很多Linux系统下面的工具都是没有被安装的,这个时候如果不能访问互联网,你会感觉特别的蛋疼,因为很多工具都没法下载以及安装,那么,今天小编就给大家分享一下如何在VMware下配置Linux系统成功访问局域网和外网. 第一步:打开VMware虚拟机,

  • 详解在Windows环境下访问linux虚拟机中MySQL数据库

    Linux虚拟机:VMware +ubuntu16.04.4 windows本机:Navicat for MySQL 1.虚拟机中下载安装MySQL VMware下载安装和ubuntu16.04.4下载安装,请自行百度查询,本文默认这些已经安装好了. 在虚拟机中Ctrl+Alt+T打开一个终端,输入命令 sudo apt-get install mysql-server mysql-client ,然后按照提示输入. 等待安装完成,可以输入命令:whereis mysql 查看mysql的安装位

  • php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值

    next() 定义和用法 next() 函数把指向当前元素的指针移动到下一个元素的位置,并返回该元素的值. 如果内部指针已经超过数组的最后一个元素,函数返回 false. 语法 next(array)参数 描述 array 必需.规定要使用的数组. 说明 next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位.这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位.如果移动指针的结果超出了数组单元的末端,则 next() 返回 FALSE. 注

  • 按下回车键指向下一个位置的一个函数代码

    复制代码 代码如下: function tofocus(itemname)    //按回车置下一个位置         {             var a             a=eval("document.vouch."+itemname)             a.focus()         } 在控件中使用onkeypress="javascrip:if(window.event.keyCode==13){tofocus('nextformname')

  • js和jquery中循环的退出和继续下一个循环

    作为水货,就是学会了1+1=3也要记录一下!错了,是2 学习记录: js中的 for(var i=1;i<5;i++){ if(i==3){ break; // 使用break,弹出2次提示分别为1,2:如果使用continue,则会弹出3次,分别是1,2,4 } alert(i); } 循环,退出循环,使用break:退出当前循环继续下一个循环,使用continue jquery中的each()方法中要实现break,使用return false:continue,使用return true

  • js jquery获取当前元素的兄弟级 上一个 下一个元素

    var chils= s.childNodes;  //得到s的全部子节点 var par=s.parentNode;   //得到s的父节点 var ns=s.nextSbiling;   //获得s的下一个兄弟节点 var ps=s.previousSbiling;  //得到s的上一个兄弟节点 var fc=s.firstChild;   //获得s的第一个子节点 var lc=s.lastChile;   //获得s的最后一个子节点 JS获取节点父级,子级元素 先说一下JS的获取方法,其

随机推荐