容器架构-Docker-01
今日内容:
一、IAAS PAAS SAAS概述
Iaas:基础设施即服务 Infrastructure-as-a-Service
Paas:平台即服务 Platform-as-a-Service
Saas:软件即服务 Software-as-a-Service
Caas:容器即服务 介于IAAS和PAAS
IAAS,PAAS,SAAS这些服务,用于帮助人们更快实现目标(搭建环境,使用产品)
从左到右,人们需要管理与维护的地方越来越少,人们可以把重点关注在使用/应用上.
更形象点:
- IAAS平台:基础设施,阿里云,云厂商.
- PAAS平台:服务/运行环境是ok,公有云,负载均衡SLB
- SAAS平台:服务已经准备好,您直接用,具体产品,如processon,wps,亿图
图示-抽象:
图示-具体:
二、容器介绍
2.1 什么是容器
容器是在隔离环境中运行的一个进程,如果进程结束,容器就会停止.
容器的隔离环境,拥有自己的ip地址、系统文件、主机名、进程管理,相当于一个mini的系统
2.2 容器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系统内核,推荐使用较新linux内核. |
三、Docker极速上手
Docker需要Linux内核: 3.10以上. 如果旧的内核需要升级内核才能使用
Docker版本说明:
3.1 环境准备
准备两台机器,用于Docker实验
docker环境 |
ip |
配置 |
docker01.oldboylinux.cn |
10.0.0.81/172.16.1.81 |
2c4G(至少1c2G) |
docker02.oldboylinux.cn |
10.0.0.82/172.16.1.82 |
2c4G(至少1c2G) |
3.2 安装docker
步骤
3.3 Docker下载镜像加速
阿里云,腾讯云有加速用的地址
如阿里云:https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images#section-9tt-j3m-d2f
配置镜像加速
3.4 配置docker自动补全
安装
四、 Docker C/S架构
什么是CS架构?
Docker的C/S架构也分为服务端和客户端:
- Docker 服务端:docker daemon 叫dockerd
- Docker 客户端:docker命令(下载镜像,运行容器…)
docker相关词汇 |
说明 |
镜像 |
存放各种的环境或服务 |
容器 |
进程,运行起来的镜像. |
仓库(存放镜像) |
远程仓库,本地仓库 |
图示:
示例:下载nginx镜像到本地仓库,然后启动容器
测试访问
以上docker run的选项说明:
-d 容器后台运行
-p 端口映射
可能需要开启系统的内核转发功能
nginx 镜像名字
五、 Dcoker的镜像管理
5.1 镜像管理操作
1)查看镜像
查看镜像列表
查看所有镜像,包括隐藏镜像
查看单个镜像的详细信息
2)搜索镜像
优先选官方、stars数量多的
3)拉取/推送镜像
拉取和推送的时候注意版本
关于镜像版本的指定:
- 只写服务名字一般下载服务的最新版本.
- 下载ngx最新版本 nginx:latest
- 下载ngx最新稳定的版本 nginx:stable
- 下载指定的版本 nginx:1.20.2
指定系统
- nginx镜像默认的系统是Debian系统
- docker pull nginx:1.20.2-alpine 使用alpine系统更加节约空间
docker镜像使用的系统 |
|
|
ubuntu |
都可以做镜像的系统. |
|
debian |
都可以做镜像的系统. bullseye ,bluster |
|
centos |
都可以做镜像的系统. |
最大. |
alpine |
镜像非常小(命令,依赖精简) linux内核+busybox |
|
4)导入/导出镜像
单个镜像操作
批量导出镜像
5)删除镜像
正在运行的镜像是不能删除的
6)清理临时镜像
未来我们自定义镜像的时候会用到
7)镜像打标签
5.2 知识扩展:jq命令
当我们使用inspect
查看镜像的详细信息,出来的是一大串json内容,不知该从何下手,这时使用jq
命令,可以很好的处理json格式的文件内容。
案例01:处理简单json数据
案例02-处理复杂格式的inspect数据