传统企业应用构建
- 应用被直接部署在操作系统之上,并且操作系统直接安装于硬件之上应用被操作系统绑定
- 操作系统被硬件绑定
- 缺点
- 部署非常慢(启动应用的速度非常慢)
- 成本非常高(原有服务器的操作系统不支持这个应用,就需要再买一台服务器)
- 资源浪费
- 难于迁移和扩展(因为应用只能支持某个操作系统,如CAD不支持mac)
- 被限定硬件厂商(很多应用只能运行在x86 CPU上)
虚拟化应用部署
既然传统应用构建需要购买服务器。那么,运行虚拟机不就好了?
这个方案有优点也有缺点。
-
应用被直接部署在操作系统之上,操作系统安装于虚拟硬件之上,虚拟硬件依赖硬件
-
应用被操作系统绑定
-
优点
- 操作系统被封装于文件中,可以在硬件设备之间自由的传播
- 隔离分区
- 文件封装
- 资源池
- 易扩展(可以随意扩大缩小内存等资源)
- 易上云
-
缺点
- 资源浪费
- 启动速度慢
- 迁移过程慢
- 不能适应SOA架构
容器的由来
- 1982年 Unix系统中出现chroot工具,然后后期衍生出LXC一整套工具 2005年 OpenVZ发布
- 2013年 dotCloud发起基于Go语言的开源项目Docker
- 2014年 Docker镜像下载数达到了一百万次
- 2015年 Docker镜像下载数突破十亿次
- 2017年 Docker镜像下载数突破百亿次
- 2018年 "最受欢迎的云计算开源项目"调查中,Docker仅次于2010年发起的Openstack
- 至今,主流的操作系统都已经支持Docker,甚至内置Docker引擎
容器是什么
- 容器就像是虚拟机,里面一样可以运行应用。
- 但容器不是虚拟机,他和虚拟机有很大不一样。(重点)
Docker与虚拟机比较:
- 虚拟化是物理资源层面的隔离
- 容器是APP层面的隔离
容器和虚拟机的区别(重点)
-
对于初学者,可以简单的将容器看做为虚拟机。
-
虚拟机工作在虚拟出来的硬件层之上,而容器工作在Docker引擎上
-
虚拟机像是一台机器.而Docker是轻量级的,更像是一个应用,而不是物理机.
-
容器是秒级启动的,占用资源少,虚拟机占用资源多.
-
容器利用镜像创建,并且是层次关系的,节约资源.虚拟机需要安装操作系统才能使用.
-
虚拟机里面可以运行docker,但是Docker中不能运行虚拟机。。
Docker的安装
# step 1: "安装必要的一些系统工具:"
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: "添加软件源信息:"
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
# Step 3: "更新并安装 Docker-CE:"
sudo yum -y install docker-ce
# Step 4:"开启Docker服务:"
sudo systemctl start docker
sudo systemctl enable docker
# Step 5:"设置Docker镜像源:"
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://tyavu5lp.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload #启动docker后台进程
sudo systemctl restart docker #启动Docker Client
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]