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 | 配置 |
---|---|---|
docker01 | 192.168.10.81、172.16.1.81 | 至少1核2G |
docker02 | 192.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服务端访问远程仓库,下载镜像