Kubernetes入门实战课-初始容器
文章目录
- Kubernetes入门实战课-初始容器
- 课前准备
- 初始容器
- Docker 的形态
- Docker 的安装
- Docker 的架构
- 容器的本质
- 隔离原因
- 与虚拟机区别
- 隔离是怎么实现的
- 镜像
- 创建容器镜像:如何编写正确、高效的Dockerfile
- 镜像的内部机制是什么
- Dockerfile 是什么
- docker build
课前准备
- 准备一台Linux服务器或Linux虚拟机
初始容器
Docker 的形态
Docker 的形态 分为:Docker Desktop 和 Docker Engine。
- Docker Desktop 是专门针对个人使用而设计的,支持 Mac 和 Windows 快速安装,具有直观的图形界面,还集成了许多周边工具,方便易用。
- Docker Engine 则和 Docker Desktop正好相反,完全免费,但只能在 Linux 上运行,只能
使用命令行操作,缺乏辅助工具,需要我们自己动手 DIY 运行环境。
Docker 的安装
略
Docker 的架构
容器的本质
被隔离的进程:进程与外部系统互不影响。
容器,就是一个特殊的隔离环境,它能够让进程只
看到这个环境里的有限信息,不能对外界环境施加影响
隔离原因
- 系统安全
- 指定资源,限制配额
与虚拟机区别
- 虚拟机虚拟硬件,需要重新安装系统等,配置环境,消耗资源
- 虚拟机直接利用了下层的计算机硬件和操作系统,更高效地利用硬件资源,提高运行效率
隔离是怎么实现的
基于 Linux 系统里的 namespace、cgroup、chroot。
- namespace 和编程语言里的 namespace 有点类
似,它可以创建出独立的文件系统、主机名、进程号、网络等资源空间,相当于给进程盖了一间小板房,这样就实现了系统全局资源和进程局部资源的隔离。 - cgroup 的全称是 Linux Control Group,用来实
现对进程的 CPU、内存等资源的优先级和配额限制,相当于给进程的小板房加了一个天花板。 - chroot 可以更改进程的根目录,也就是限制访问文件系统,相当于给进程的小板房铺上了地砖。
镜像
创建容器镜像:如何编写正确、高效的Dockerfile
镜像的内部机制是什么
分层,术语叫“Layer”:
容器镜像内部并不是一个平坦的结构,而是由许多的镜像层组成的,每层都是只读不可修改的一组文件,相同的层可以在镜像之间共享,然后多个层像搭积木一样堆叠起来,再使用一种叫“Union FS 联合文件系统”的技术把它们合并在一起.
Dockerfile 是什么
Dockerfile 就是一个纯文本,里面记录了一系列的构建指
令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而Docker顺序执行这个文件里的所有步骤,最后就会创建出一个新的镜像出来.
docker build
将Dockerfile 构建为镜像