Docker(一)之核心技术
2021-10-31 23:39:39 0 举报
AI智能生成
Docker 核心技术理解
作者其他创作
大纲/内容
基础知识
是什么 docker?
一种操作系统层面的虚拟化技术
演进
为什么用 docker?
怎么用 docker?
启动&停止
查看容器细节
进入容器
拷贝文件至容器内
查看硬件使用情况
容器
什么是容器?
定义:容器就是一个视图隔离、资源可限制、独立文件系统的进程集合
操作系统管理进程的三个特点
进程间可相互通信
使用相同文件系统
进程共享系统资源
造成的问题
高级进程可攻击其他进程
高级进程可破坏其他进程的文件读写
资源抢占问题
解决:为进程提供一个独立的运行环境
使用 Namespace 达到进程在资源系统上的隔离
通过 Cgroup 限制资源使用率
使用 chroot 系统调用达到视图级别的隔离
容器状态
Image Service - 镜像
库:存储镜像的目录
定义:容器运行时所需要的所有文件集合
镜像的优势
提高分发效率,分层结构可并行下载
提高构建效率,在镜像中加入特有文件集合就可以运行
节约磁盘空间,共享只读层
Runtime Service
主要特性
安全性
隔离性
便携性
可配额/可度量
构建容器
cat Dockerfile
将Dockerfile打包成镜像
运行容器
虚拟机和容器运行态的对比
虚拟机运行态
容器运行态
内部实现
资源隔离- Namespace
代码实现
Linux 新建&修改 Namespace
clone
unshare
setns
常用 Namespance 命令
查看当前系统的 namespace
查看某进程的 namespace
进入某 namespace 运行命令
练习
Namespace 类型
资源配额&度量 - Cgroups
代码实现
Cgroups 子系统
管理可压缩资源
cpu 子系统 - CPU 配置情况
cpuacct 子系统 - CPU 使用情况
管理不可压缩资源
memory 子系统
文件系统 -Union FS
Linux 文件加载
Docker 文件加载
容器存储驱动
OverlayFS 存储驱动
写操作
写时复制
用时分配
网络
Null (--net=None)
Host
Container
Bridge(--net=bridge)
Remote(work with remote drivers)
Overlay(libnetwork,libkv)
Underlay
参考资料
Docker 核心技术 PDF - 极客时间
Docker 官网
Github Docker 源码
0 条评论
下一页