当前位置:首页 > 经验 >

什么是docker容器技术(docker容器的好处)

来源:原点资讯(www.yd166.com)时间:2022-11-09 08:00:25作者:YD166手机阅读>>

什么是docker容器技术,docker容器的好处(1)

在容器技术没有出来之前,开发运维在进行交付的时候经常出现,开发环境执行正常,生产环境部署运行出现问题,很多原因就是因为环境导致。还有部署环境太过于复杂,交付成本太高。容器技术的出现就像工业的集装箱技术,大大提高了交付效率。

一、容器核心技术

一谈到容器,我们都会想到 Docker。

Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,我们也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。

1、容器规范

容器不光是 Docker,还有其他容器,比如 CoreOS 的 rkt。为了保证容器生态的健康发展,保证不同容器之间能够兼容,包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目是制定开放的容器规范。

2、容器 runtime

runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。

  • lxc、runc 和 rkt 是目前主流的三种容器 runtime。
  • lxc 是 Linux 上老牌的容器 runtime。Docker 最初也是用 lxc 作为 runtime。
  • runc 是 Docker 自己开发的容器 runtime,符合 oci 规范,也是现在 Docker 的默认 runtime。
  • rkt 是 CoreOS 开发的容器 runtime,符合 oci 规范,因而能够运行 Docker 的容器。

3、容器管理工具

光有 runtime 还不够,用户得有工具来管理容器啊。容器管理工具对内与 runtime 交互,对外为用户提供 interface,比如 CLI。这就好比除了 JVM,还得提供 java 命令让用户能够启停应用不是。

  • lxd 是 lxc 对应的管理工具。
  • runc 的管理工具是 docker engine。docker engine 包含后台 deamon 和 cli 两个部分。我们通常提到 Docker,一般就是指的 docker engine。
  • rkt 的管理工具是 rkt cli。

4、容器定义工具

容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。

  • docker image 是 docker 容器的模板,runtime 依据 docker image 创建容器。
  • dockerfile 是包含若干命令的文本文件,可以通过这些命令创建出 docker image。
  • ACI (App Container Image) 与 docker image 类似,只不过它是由 CoreOS 开发的 rkt 容器的 image 格式。

5、Registry

容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。

  • Docker Hub(https://hub.docker.com) 是 Docker 为公众提供的托管 Registry,上面有很多现成的 image,为 Docker 用户提供了极大的便利。
  • Quay.io(https://quay.io/)是另一个公共托管 Registry,提供与 Docker Hub 类似的服务。

6、容器 OS

由于有容器 runtime,几乎所有的 Linux、MAC OS 和 Windows 都可以运行容器。但这不并没有妨碍容器 OS 的问世。

容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。

目前已经存在不少容器 OS,CoreOS、atomic 和 ubuntu core 是其中的杰出代表。

二、说说容器

1、什么是容器

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

Containers vs. virtual machines

容器在 Host 操作系统的用户空间中运行,与操作系统的其他进程隔离。这一点显著区别于的虚拟机。

传统的虚拟化技术,比如 VMWare, KVM, Xen,目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十 MB),还得安装整个操作系统(几 GB)。

什么是docker容器技术,docker容器的好处(2)

虚拟机和容器的区别

由于所有的容器共享同一个 Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系统,所以容器部署和启动速度更快,开销更小,也更容易迁移。

2、为什么使用容器

如今的系统在架构上较十年前已经变得非常复杂了。以前几乎所有的应用都采用三层架构(Presentation/Application/Data),系统部署到有限的几台物理服务器上(Web Server/Application Server/Database Server)。

而今天,开发人员通常使用多种服务(比如 MQ,Cache,DB)构建和组装应用,而且应用很可能会部署到不同的环境,比如虚拟服务器,私有云和公有云。

一方面应用包含多种服务,这些服务有自己所依赖的库和软件包;另一方面存在多种部署环境,服务在运行时可能需要动态迁移到不同的环境中。这就产生了一个问题:

如何让每种服务能够在所有的部署环境中顺利运行?

聪明的技术人员从传统的运输行业找到了答案。

几十年前,运输业面临着类似的问题。

每一次运输,货主与承运方都会担心因货物类型的不同而导致损失,比如几个铁桶错误地压在了一堆香蕉上。另一方面,运输过程中需要使用不同的交通工具也让整个过程痛苦不堪:货物先装上车运到码头,卸货,然后装上船,到岸后又卸下船,再装上火车,到达目的地,最后卸货。一半以上的时间花费在装、卸货上,而且搬上搬下还容易损坏货物。

幸运的是,集装箱的发明解决这个难题。

打一个比方,集装箱(容器)对于远洋运输(应用运行)来说十分重要。集装箱(容器)能保护货物(应用),让其不会相互碰撞(应用冲突)而损坏,也能保障当一些危险货物发生规模不大的爆炸(应用崩溃)时不会波及其它货物(应用)但是把货物(应用)装载在集装箱(容器)中并不是一件简单的事情。而出色的码头工人(Docker)的出现解决了这一问题。它(Docker)使得货物装载到集装箱(容器)这一过程变得轻而易举。对于远洋运输(应用运行)而言,用多艘小货轮(虚拟机)代替原来的大货轮(实体机)也能保证货物(应用)彼此之间的安全,但是和集装箱(容器)比,成本过高,但适合运输某些重要货物(应用)。

任何货物,无论钢琴还是保时捷,都被放到各自的集装箱中。集装箱在整个运输过程中都是密封的,只有到达最终目的地才被打开。标准集装箱可以被高效地装卸、重叠和长途运输。现代化的起重机可以自动在卡车、轮船和火车之间移动集装箱。集装箱被誉为运输业与世界贸易最重要的发明。

Docker 将集装箱思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

其实,“集装箱” 和 “容器” 对应的英文单词都是 “Container”。

“容器” 是国内约定俗成的叫法,可能是因为容器比集装箱更抽象,更适合软件领域的原故吧。

3、容器的优势

对于开发人员

容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的 Host 环境是隔离的,就像虚拟机一样,但更快更简单。

对于运维人员

只需要配置好标准的 runtime 环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效,一致和可重复。容器消除了开发、测试、生产环境的不一致性。

原文链接:www.toutiao.com/i6506330893202752013/

(完)

栏目热文

docker与容器关系(docker容器与容器之间通信)

docker与容器关系(docker容器与容器之间通信)

什么是容器?一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。容器镜像是轻量的、可执行的独立软件包...

2022-11-09 08:03:07查看全文 >>

什么情况下需要用容器docker(docker容器使用缺点)

什么情况下需要用容器docker(docker容器使用缺点)

什么是Docker?恐怕90%的人脑子一闪而过的都是那张图:一条鲸鱼背上扛着一堆箱子,图片下方是大大的“docker”。...

2022-11-09 07:42:32查看全文 >>

docker 容器到底能做什么(docker容器化有什么用)

docker 容器到底能做什么(docker容器化有什么用)

引言早在2013年的时候,Docker就已经发行,然而那会还是很少人了解docker。一直到2014年,Martin F...

2022-11-09 07:26:30查看全文 >>

鱼竿最大用几号主线(鱼竿和主线的长度多少最合适)

鱼竿最大用几号主线(鱼竿和主线的长度多少最合适)

​鱼竿是钓鱼装备中的“大件”,价格相对较高,同时也起着非常重要的作用,所以从最开始的挑选到合理的使用再到后期的保养都得十...

2022-11-09 08:09:03查看全文 >>

鲫鱼竿都是用多大主线(鲫鱼竿最好选多长)

鲫鱼竿都是用多大主线(鲫鱼竿最好选多长)

野钓,野钓的魅力所在,下一条咬钩的是条多大的鱼你永远不会知道,是什么鱼。故此,野钓,要有目标鱼,根据主攻鱼的大小选择钓组...

2022-11-09 07:48:16查看全文 >>

docker容器有什么缺点(docker 有哪些好用的容器)

docker容器有什么缺点(docker 有哪些好用的容器)

# docker解决的问题由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的...

2022-11-09 07:27:51查看全文 >>

容器docker的缺点(docker容器的总结)

容器docker的缺点(docker容器的总结)

2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。但是,许多人并不清楚 Docker 到底是什...

2022-11-09 07:37:41查看全文 >>

docker和容器通俗理解(docker容器技术的理解)

docker和容器通俗理解(docker容器技术的理解)

一、什么是容器?容器这个词,当你第一眼看它或许脑子里是这东西:瓶瓶罐罐、装水、装其他东西的玩意。图1不管是什么,总的来说...

2022-11-09 07:35:03查看全文 >>

docker容器有哪些(docker容器的特点与功能)

docker容器有哪些(docker容器的特点与功能)

概述今天主要简单介绍下Docker的技术架构及其中组成的各个模块。技术架构distribution 负责与docker ...

2022-11-09 07:43:27查看全文 >>

容器docker怎么用(docker容器介绍)

容器docker怎么用(docker容器介绍)

一.什么是docker?百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移...

2022-11-09 07:53:42查看全文 >>

文档排行