淘先锋技术网

首页 1 2 3 4 5 6 7

第四章

一、容器

1、定义

容器是一种轻量级可移植自包含的软件打包技术,使应用程序可在几乎任何地方以相同的方式运行。

2、优势

  • 快速的交付和部署
  • 更高效的虚拟化
  • 服务结合
  • 易于迁移

3、虚拟机

所谓虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、并可以运行在一个
完全隔离环境中的完整计算机系统。虚拟机就是相对于传统计算机而言的计算机概念, -个非实体的计算机,但具有所有传统计算机的功能。

4、Docker与传统的虚拟化的对比

容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

在这里插入图片描述

5、image镜像

  • 一个只读层被称为镜像,-一个镜像是永久不会变的
  • 由于Docker使用一个统一文件系统, Docker 进程认为整个文件系统是以读写方式挂载的。但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不可写,所以镜像是无状态的
  • 每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。下层那个镜像是上层镜像的父镜像
  • 一个镜像不能超过127层.所有镜像都是通过一个64位十六进制字符串(内部是一 个256 bit的值)来标识的。为简化使用, 前12个字符可以组成一个短ID,可以在命令行中使用
    在这里插入图片描述

6、镜像的实现原理

问: Docker 镜像是怎么实现增量的修改和维护的?

答:每个镜像都由很多层次构成,Docker 使用Union FS将这些不同的层结合到一个镜像中去。通常Union FS有两个用途, 一方面可以实现不借助LVM、RAID 将多个disk挂到同-一个目录下另-个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD正是基于此方法可以允许在镜像不变的基础_上允许用户在其上进行一些写操作。 Docker 在AUFS .上构建的容器也是利用了类似的原理。

二、容器迁移的背景

docker存在:系统负载不均衡和主机硬件维护困难

无法跨平台迁移

跨平台的容器无法运行,会出现格式错误

容器迁移原理:

迁移容器同时涉及到了上面两个操作,备份和恢复。我们可以将任何一个Docker容器从一台机器迁移到另一台机器。在迁移过程中,首先我们将把容器备份为Docker镜像快照。然后,该Docker镜像或者是被推送到了Docker注册中心,或者被作为tar包文件保存到了本地。如果我们将镜像推送到Docker注册中心,我们简单地从任何我们想要的机器上使用docker run命令来恢复并运行该容器,或者通过docker pull命令拉取我们想要的镜像。