容器
2025-03-26 22:53:05 0 举报
AI智能生成
容器
作者其他创作
大纲/内容
虚拟化与容器技术演进图谱
时间轴概览
**1950-1970**:虚拟化技术萌芽期
**1970-1990**:UNIX时代与早期容器雏形
**1990-2010**:现代虚拟化技术成熟期
**2010至今**:容器技术爆发与云原生时代
虚拟化技术演进
早期奠基阶段
**1960s**:CP-40/CMS、Plessey System 250
**1970s**:VM/370、IBM System/38
**1980s**:AS/400、SunOS
现代虚拟化
**1990s**:Disco虚拟化系统、Xen
**2000s**:KVM、QEMU、VMware
**2010s**:Firecracker、LightVM
容器技术演进
技术雏形
**1979**:chroot(UNIX V7)
**2000s**:FreeBSD Jail、Solaris Zones
**2006**:Google Borg
容器革命
**2013**:Docker
**2014**:Kubernetes
**2018**:Kata Containers
关键技术影响关系
直接影响链路
UNIX → Linux → Docker
POSIX 1e → 现代容器安全
Xen → AWS虚拟化技术
Borg → Kubernetes编排系统
间接影响网络
Multics → UNIX → POSIX标准
QEMU → KVM → 现代云虚拟化
chroot → LXC → Docker容器
核心标准演进
**安全模型**:Capsicum → Linux Capabilities
**接口规范**:POSIX → OCI标准
**虚拟化架构**:IAPX 432 → Intel VT-x
容器技能图谱
容器技术
docker
介绍
Docker是什么
出现的原因
设计理念
能干什么
企业级
美团
京东
开发和运维
获取
www.docker.com
www.docker-cn.com
仓库
hub.docker.com
架构
安装
参考官方文档
配置仓库地址
组成
镜像
容器
仓库
命令
帮助命令
docker version
docker info
docker --help
镜像命令
docker images
-a 列出所有镜像
-q 只显示镜像ID
--digests:显示摘要信息
--no-trunc:不截断输出,显示完整的镜像ID
docker search 镜像名
docker rmi 删除镜像
删除单个 docker rmi 镜像id/镜像名称
删除多个镜像 docker rmi id1 id2
删除全部镜像 docker rmi ${docker images -qa}
docker 运行命令
新建并运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS --name为容器指定新名称
-d 后台运行
-i交换方式运行
-t伪终端
-p端口映射
-P随机端口映射
列出所有运行的容器
docker ps [options]
-a :所有正在运行和运行过的
-l: 显示最近创建的容器
-n:显示最近创建的n个容器
-q:只显示容器id
退出容器
exit / ctrl + d:退出并停止容器
ctrl+p+q:退出不停止容器
启动容器
docker start 容器id/名称
重启容器
docker restart 容器id/名称
停止容器
docker stop 容器id/名称
强制停止所有容器
docker kill 容器id/名称
删除容器
docker rm 容器id/名称
删除所有容器
docker rm -f $(docker ps -aq)
docker ps -a -q | xargs docker rm
以后台方式运行容器
docker run -d 容器
进入正在运行的容器,并以前台方式运行
docker exec -t 容器id/名称 bashshell 产生新的进程
docker attach 容器id/名称 进入容器不产生新的进程
容器 拷贝文件主机
docker copy 容器id/名称:容器中路径 主机路径
docker copy 主机路径 容器id/名称:容器中路径
容器
数据卷
是什么
能干什么
数据卷
数据容器卷
是什么
能干什么
日志系统存储(典型场景)
使用
docker run -it --name n1 --volumes-from n0 centos
Dockerfile介绍
是什么
执行流程
关键字
FROM
基础镜像,当前镜像是基于那个镜像
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN
镜像构建时需要运行的命令
WORKDIR
容器创建后,默认在那个目录
EXPOSE
当前容器对外暴露的接口
ENV
用来构建镜像时设置环境变量
ADD
将宿主机目录下的文件copy到镜像且ADD命令会自动解压压缩包
COPY
VOLUME
容器数据卷,用来保存和持久化
CMD
指定容器启动时需要运行的命令
多条CMD命令,只有最后一条生效
CMD命令会被docker run之后的参数替换
ENTRYPOINT
指定容器启动过程中需要运行的命令
把docker run命令的参数追加到后面
ONBUILD
网络
单机
Bridge Network
Host Network
None Network
多机
Overlay Network
镜像
是什么
UnionFS(联合文件系统)
镜像加载原理
分层镜像
为什么采用这种设计
docker commit 镜像提交
docker commit -m='' -a='作者' 容器id 目标镜像名称:[标签名]
LXC
RunC
Rkt
Kubernetes
介绍说明
发展历史
公有云类型说明
资源管理器对比
K8S 其优势
K8S 组件说明
Borg 组件说明
K8S 结构说明
网络结构
组件结构
K8S 中的一些关键字解释
基础概念
Pod 概念
自主式 Pod
管理器管理的 Pod
RS、RC
deployment
HPA
StatefullSet
DaemonSet
Job,Cronjob
服务发现
Pod 协同
网络通讯模式
网络通讯模式说明
组件通讯模式说明
Kubernetes 安装
系统初始化
Kubeadm 部署安装
常见问题分析
资源清单
K8S 中资源的概念
什么是资源
名称空间级别的资源
集群级别的资源
资源清单
yam 语法格式
通过资源清单编写 Pod
Pod 的生命周期
initC
Pod phase
容器探针
livenessProbe
readinessProbe
Pod hook
重启策略
Pod 控制器
Pod 控制器说明
什么是控制器
控制器类型说明
ReplicationController 和 ReplicaSet
Deployment
DaemonSet
Job
CronJob
StatefulSet
Horizontal Pod Autoscaling
服务发现
Service 原理
Service 含义
Service 常见分类
ClusterIP
NodePort
ExternalName
Service 实现方式
userspace
iptables
ipvs
Ingress
Nginx
HTTP 代理访问
HTTPS 代理访问
使用 cookie 实现会话关联
BasicAuth
Nginx 进行重写
运维
Kubeadm 源码修改
Kubernetes 高可用构建
HELM
HELM 概念
HELM 概念说明
组将构成
HELM 部署
HELM 自定义
HELM 部署实例
HELM 部署 dashboard
metrics-server
HPA 演示
资源限制
Pod
名称空间
Prometheus
EFK
集群安全机制
机制说明
认证
HTTP Token
HTTP Base
HTTPS
鉴权
AlwaysDeny
AlwaysAllow
ABAC
Webbook
RBAC
RBAC
Role and ClusterRole
RoleBinding and ClusterRoleBinding
Resources
to Subjects
创建一个系统用户管理 k8s dev 名称空间:重要实验
准入控制
调度器
调度器概念
概念
调度过程
自定义调度器
调度亲和性
nodeAffinity
preferredDuringSchedulingIgnoredDuringExecution
requiredDuringSchedulingIgnoredDuringExecution
podAntiAffinity
preferredDuringSchedulingIgnoredDuringExecution
requiredDuringSchedulingIgnoredDuringExecution
亲和性运算符
污点
污点概念
Taint
组成
污点的设置、查看和去除
Tolerations
tolerations 设置演示
固定节点调度
PodName 指定调度
标签选择器调度
存储
configMap
定义概念
创建 configMap
使用目录创建
使用文件创建
使用字面值创建
Pod 中使用 configMap
ConfigMap 来替代环境变量
ConfigMap 设置命令行参数
通过数据卷插件使用ConfigMap
configMap 热更新
实现演示
更新触发说明
Secret
定义概念
概念说明
分类
Service Account
Opaque Secret
特殊说明
创建
使用
Secret 挂载到 Volume
Secret 导出到环境变量中
kubernetes.io/dockerconfigjson
volume
定义概念
卷的类型
emptyDir
说明
用途假设
实验演示
hostPath
说明
用途说明
实验演示
PV
概念解释
PV
PVC
类型说明
PV
后端类型
PV 访问模式说明
回收策略
状态
实例演示
PVC
PVC 实践演示
容器运行时与工具
Systemd-ngpawn
Hyper
VMWare Photon
Jetpack
Kurma
Bosh
容器管理界面
DockerUI
Kitematic
Docking.io
Shipyard
StackEngine
Panamax
Fabric8
Triton
编排与调度平台
Kubernetes
Fleet
Marathon
OpenShift
GearD
Rancher
Swarm
Yarn
容器网络
Pipework
Flannel
Calico
Weave
Socketplane.io
Perlino
Nuage
核心与监控
容器核心
Sysdig
Guardrail
cAdvisor
监控和数据收集
PaaS与云服务
CloudFoundry Containers Service Broker
AWS Container Service
Google Container Engine
Alauda
DaoCloud
TenxCloud
CSphere
自动化与安全
容器自动化处理
CoreOS
Project Atomic
RancherOS
ClearLinux
容器安全
SELinux on docker
Flocker
Ceph
工具链与集成
CI/CD工具
Drone.io
Shippable
Jenkins Docker plugin
镜像仓库
Docker Repository
Quay.io
0 条评论
下一页
为你推荐
查看更多