文章目录
第四章
一、容器
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命令拉取我们想要的镜像。