1、Iaas-Paas-Saas

Iaas:Infrastructure as a Service,基础设施即服务

Paas:Platform as a Service,平台即服务

Saas:Software as a Service,软件即服务

Caas:介于IAAS与PAAS之间,容器即服务

IAAS平台:基础设施,如,阿里云、云厂商、云服务器

PAAS平台:服务/运行环境是ok的,如公有云、负载均衡SLB、rds

SAAS平台:服务已经准备好,你直接用即可。具体产品,如processon,wps,亿图

简述如下:

2、什么是容器

容器:是隔离的环境中运行的一个进程,如果进程结束,容器就会停止

容器的隔离环境,拥有自己的ip地址、系统文件、主机名、进程管理,相当于一个mini的系统

3、容器 vs 虚拟机

对比虚拟机容器
优点1、使用简单
2、也有成熟管理工具,如vmware esxi、KVM、Openstack
3、可以随意定制
4、启动虚拟机要经历完整的Linux启动流程
1、快速部署(扩容、弹性伸缩)
2、大部分环境都有现成的镜像
3、让我们不再关注系统基础设施,把关注点放在配置、升级、优化上
4、不依赖硬件
5、容器启动秒级别
6、相当于一个进程
缺点1、需要硬件支持虚拟化技术(VT-X)
2、资源利用率不高
3、同一台虚拟机跑多个服务,可能有冲突
4、占用资源较多
5、不满足目前升级、快速扩容、快速部署、回滚不方便
1、使用较为复杂
2、共享Linux系统内核,因此,推荐使用较新的内核

示例如下:

4、Docker入门

Linux内核:3.10以上,如果旧的内核需要升级内核才能用

安装docker环境,docker-ce(开源),docker-ee(企业版)

从1.13开始,改成年-月版本命名方式,如:17.037、19.03、20.10

从23.0后改为传统版本命名方式

4.1 环境准备

docker环境-主机名ip配置
docker01192.168.10.81、172.16.1.81至少1核2G
docker02192.168.10.82、172.16.1.82至少1核2G

4.2 安装docker-ce

通用的安装脚本:

curl  -fsSL https://get.docker.com/  -o install-docker.sh

两台机器都配置:

#1、安装相关依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

#2、下载官方的docker yum源文件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#3、替换yum源地址,把官方的地址换成清华大学的
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

#4、安装docker-ce
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动docker

systemctl enable --now docker

检查版本:

[root@docker01 ~]#docker version

4.3 镜像下载加速

使用docker的时候需要下载很多docker的镜像,为了加速下载,需要配置docker加速

docker下载镜像加速,比如,使用阿里云加速,如何获取阿里云加速地址。

登录阿里云—>搜索“镜像”—>容器镜像服务ACR

点击“镜像工具”—->镜像加速器:

安装方法配置即可。

/etc/docker/daemon.json是docker服务端的配置文件

mkdir -p /etc/docker
 
 tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1xesnmzk.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

4.4 命令自动补全

安装 bash-completion、bash-completion-extras

yum install bash-completion bash-completion-extras

4.5 运行容器案例

docker run命令如下:

[root@docker01 ~]#docker run  -d  -p 80:80 nginx:1.24-alpine

参数解释:

-d:容器后台运行
-p:端口映射
nginx:镜像名字

docker客户端找docker服务端,问是否有nginx镜像

如果有,则启动这个镜像,后台运行,访问容器端口是80端口

如果没有。则从远程仓库下载镜像,然后启动这个镜像,后台运行

,访问容器的端口是80端口。

1)提示本地没有nginx镜像 nginx:latest最新版

Unable to find image 'nginx:1.24-alpine' locally

2)找远程仓库下载

1.24-alpine: Pulling from library/nginx
4db1b89c0bd1: Downloading  2.562MB/3.375MB
6f8beccece3b: Download complete 
efba416b8a87: Download complete 
6e7bc8944b52: Download complete 
72805f9582fb: Download complete 
4c6615db462e: Download complete 
d799d200ba56: Downloading    770kB/11.65MB

3)运行镜像,成为docker容器

Digest: sha256:5e1ccef1e821253829e415ac1e3eafe46920aab0bf67e0fe8a104c57dbfffdf7
Status: Downloaded newer image for nginx:1.24-alpine
4bd3fb23e58c642812315d3d7f6e7489a339601d50c6a41f9519acbc8497bf0c

OK,运行成功,浏览器打开:192.168.10.81,如下:

docker pull 命令:下载镜像到本地仓库

如果本地仓库有,则提示已经下载
如果本地仓库没有,则docker服务端访问远程仓库,下载镜像