[1.1 云端](#1.1 云端)
[1.2 云计算服务模式分层](#1.2 云计算服务模式分层)
[1.3 虚拟化架构](#1.3 虚拟化架构)
[1.3.1 寄居架构](#1.3.1 寄居架构)
[1.3.2 原生架构](#1.3.2 原生架构)
[1.4 虚拟化产品](#1.4 虚拟化产品)
[1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低)](#1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低))
[1.4.2 半虚拟化 (虚拟机可以使用真机物理机)](#1.4.2 半虚拟化 (虚拟机可以使用真机物理机))
[1.4.3 全虚拟化 (直接使用物理硬件,性能高)](#1.4.3 全虚拟化 (直接使用物理硬件,性能高))
[1.4.4 KVM和EXSI详解](#1.4.4 KVM和EXSI详解)
[2.1 概念](#2.1 概念)
[2.2 优点](#2.2 优点)
[2.3 Docker与虚拟机的区别](#2.3 Docker与虚拟机的区别)
[2.4 容器技术](#2.4 容器技术)
[2.5 容器在内核中支持2种重要技术](#2.5 容器在内核中支持2种重要技术)
[2.6 namespace的六项隔离](#2.6 namespace的六项隔离)
[2.7 docker核心概念](#2.7 docker核心概念)
[2.8 安装 Docker](#2.8 安装 Docker)
[2.8.1 关闭防火墙和核心防护](#2.8.1 关闭防火墙和核心防护)
[2.8.2 安装依赖包](#2.8.2 安装依赖包)
[2.8.3 设置阿里云镜像源](#2.8.3 设置阿里云镜像源)
[2.8.4 安装 Docker-CE并设置为开机自动启动](#2.8.4 安装 Docker-CE并设置为开机自动启动)
[2.8.5 查看 docker 版本信息](#2.8.5 查看 docker 版本信息)
[2.8.6 docker 信息查看](#2.8.6 docker 信息查看)
[2.8.7 搜索镜像](#2.8.7 搜索镜像)
[2.8.8 获取镜像](#2.8.8 获取镜像)
[2.8.9 镜像加速下载](#2.8.9 镜像加速下载)
[2.8.10 查看下载的镜像文件信息](#2.8.10 查看下载的镜像文件信息)
[2.8.11 查看下载到本地的所有镜像](#2.8.11 查看下载到本地的所有镜像)
[2.8.12 获取镜像详细信息](#2.8.12 获取镜像详细信息)
[2.8.13 为本地的镜像添加新的标签](#2.8.13 为本地的镜像添加新的标签)
[2.8.14 删除镜像](#2.8.14 删除镜像)
一、虚拟化
1.1 云端
国内云 华为云,阿里云、腾讯云,天翼云(私有云)
国外云 谷歌 亚马逊
1.2 云计算服务模式分层
laaS:Infrastructure(基础设施)-as-a-Service
PaaS:Platform(平台)-as-a-Service
SaaS:Software(软件)-as-a-Service
1.3 虚拟化架构
1.3.1 寄居架构
本机(真实的操作系统)-》虚拟化产品-》虚拟化操作系统或软件
1.3.2 原生架构
裸金属服务器-》虚拟化产品
1.4 虚拟化产品
1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低)
vmware客户端
vmware workstation 个人在windows安装的虚拟机
vmware Fusion MAC
1.4.2 半虚拟化 (虚拟机可以使用真机物理机)
(1)KVM/openstack(开发), linux 环境虚拟机,私有云环境
KVM 基于内核的虚拟机主机,也可看做全虚拟化。
(2)半虛拟化reh15自带xen(虚拟机监视器),Hypervisor层
微软 Microsoft Hyper-v
virtualBox 7.0 虚拟盒子
cirix Hypervisor
1.4.3 全虚拟化 (直接使用物理硬件,性能高)
VMware服务端
exsi vmware vsphere 安装在裸金属服务器上
客户端连接,现企业使用网页端连接,vmware vsphere
1.4.4 KVM和EXSI详解
(1)KVM linux内核来完成的功能和性能。
首先通过kvm+内核调用控制器,然后通过控制器调用内核软件层,然后内核软件层调用QEMU的I/O控制器,QEMU使用二进制调用CPU内存,生成vm1、vm2等虚拟机。
(2)企业用得多,除了云之外。
在裸金属服务器安装EXSI系统,使用网页连接,系统层使用调度器调度配置网络。监控管理、CPU、内存等。
二、Docker
2.1 概念
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的"虚拟机"。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。
打成一个镜像包。
Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的"一次封装,到处运行"的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。
2.2 优点
(1)灵活:即使是最复杂的应用也可以集装箱化。
(2)轻量级:容器利用并共享主机内核。
(3)可互换:可以即时部署更新和升级。
(4)便携式:可以在本地构建,部署到云,并在任何地方运行。
(5)可扩展:可以增加并自动分发容器副本。
(6)可堆叠:可以垂直和即时堆叠服务。
注意:容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。
2.3 Docker与虚拟机的区别
2.4 容器技术
docker
podman 与docker相似OCI
K8s
Container 核心组件之一
LXC linux容器化技术
crio:轻量级,专门用于 k8s
apche mesos 容器编排平台
2.5 容器在内核中支持2种重要技术
docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。
2.6 namespace的六项隔离
2.7 docker核心概念
(1)镜像
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。
Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。
(2)容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。镜像 nginx (run) 起来之后的一个实例,可以把容器看做时一个简易版的linux环境容器 就是集装箱(logo上的集装箱)
(3)仓库
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。
注意:Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker
2.8 安装 Docker
2.8.1 关闭防火墙和核心防护
systemctl stop firewalld.service
setenforce 0
2.8.2 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.8.3 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.8.4 安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service
2.8.5 查看 docker 版本信息
docker version
2.8.6 docker 信息查看
docker info
2.8.7 搜索镜像
docker search 关键字
如:docker search nginx
2.8.8 获取镜像
docker pull 仓库名称[:标签]
如:docker pull nginx
2.8.9 镜像加速下载
(1)浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置
(2)配置
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rs4kf2fz.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
2.8.10 查看下载的镜像文件信息
cat /var/lib/docker/image/overlay2/repositories.json
2.8.11 查看下载到本地的所有镜像
docker images
2.8.12 获取镜像详细信息
docker inspect 镜像ID号
2.8.13 为本地的镜像添加新的标签
docker tag 名称:[标签] 新名称:[新标签]
2.8.14 删除镜像
docker rmi 仓库名称:标签
或
docker rmi 镜像ID号