工程实践_Docker简介

Docker和容器技术为了这么火爆?核心原因就是“”。

在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表是VMWare和OpenStack。

虚拟机就是在我们的操作系统里装一个软件,然后通过这个软件再模拟一台甚至多台“子电脑”出来。

在“子电脑”里,我们可以和正常电脑一样运行程序,例如打开微信。如果我们愿意,我们可以变出好几个“子电脑”,里面都开上微信。“子电脑”和“子电脑”之间,是相互隔离的,互不影响。

虚拟机属于虚拟化技术。而Docker这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。

虚拟机虽然可以隔离出很多“子电脑”,但是占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。

而容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙盒”)。

Docker启动时间很快,几秒钟就能完成。而且它对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只需要MB级甚至KB级。

特性 虚拟机 容器
隔离级别 操作系统级 进程级
隔离策略 Hypervisor CGroups
系统资源 5~15% 0~5%
启动时间 分钟级 秒级
镜像存储 GB-TB KB-MB
集群规模 上百 上万
高可用策略 备份、容灾、迁移 弹性、负载、动态

因此,容器技术获得了广泛的支持。

Docker本身并不是容器,它是创建容器的工具,是应用容器引擎

Build,Ship and Run”也就是“搭建、发送、运行”。

在这里插入图片描述

接下来我们先举一个例子:

我们来到一片空地,想建一个房子,于是我们搬石头、砍木头、画图纸,经过努力终于把这个房子盖好了。

结果,住了一段时间,我们想半岛另一片空地区。这个时候,按以前的办法,我们只能再次搬石头、砍木头、画图纸、盖房子。

神奇的事情发生了,一个天使从天而降告诉我一个魔法。

用这种魔法,我们可以把我盖好的房子复制一份,做成镜像,放在我们的背包里。

等我们到了另一片空地,就用这个镜像,复制一套房子,摆在那边,就可以入住了!

所以Docker的第二句口号是:“build once,Run anywhere”(搭建一次,随处可用)。

Docker技术的三大核心概念:

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)

回到我们刚才的例子,那个放在包里的“镜像”,就是Docker镜像。而我的背包里,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器

说白了,这个Docker镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。
镜像不包含任何动态数据,其内容在构建之后也不会被改变。也就是说,在上个例子中,每次变出房子,房子是一样的,但生活用品之类的,都是不管的,谁住谁负责添置。

每一个镜像可以变出一种房子,那么我们可以生成多个镜像,可以是欧式别墅,也可以是中国四合院,也可以是非洲茅草屋。于是Docker仓库就变成了一个大的公共仓库。

负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员)。

不是任何人建的任何镜像都是合法的,万一有人盖了一个有问题的房子呢,所以,Docker Registry服务对镜像的管理是非常严格的。

最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的Registry,并拥有大量的高质量的官方镜像。

发布了94 篇原创文章 · 获赞 37 · 访问量 3424

猜你喜欢

转载自blog.csdn.net/Rocky6688/article/details/103779212