1-1 容器基础

最后更新于:2022-04-02 07:36:49

#### 容器技术、虚拟化技术、传统部署的区别? ##### 传统 - 部署慢(准备环境,上传,重启) - 成本高(购买硬件成本) - 资源浪费(闲置资源过多) - 难于迁移和扩展(程序迁移依赖,升级复杂) - 可能被硬件厂商限定(x86架构) ##### 虚拟化技术 - 物理资源虚拟化 - 一个物理机部署多个APP - 每个APP运行在一个VM里面 - 一个物理机的资源分配到不同的虚拟机里,提升硬件资源利用率 - 容易扩展(增加物理机) - 很容易云化(迁移阿里云) 缺点 - 运行在完整操作系统之上,系统本身消耗资源大 ##### 容器技术 - 对软件和其依赖的标准化打包 - 应用之间的隔离 - 共享同一个OS Kerne - 可以运行在很多主流操作系统 ##### 容器技术解决了什么? 对开发 > 技术栈多,环境复杂,依赖多 对运维 >环境复杂,部署效率低,扩展难 - 解决了运维和开发之间的矛盾(建立统一标准,统一环境,和生产环境保持一致) - 在开发和运维之间搭建了一个桥梁(Devops的基础) #### 容器技术、虚拟化技术、传统部署的区别? ##### 传统 - 部署慢(准备环境,上传,重启) - 成本高(购买硬件成本) - 资源浪费(闲置资源过多) - 难于迁移和扩展(程序迁移依赖,升级复杂) - 可能被硬件厂商限定(x86架构) ##### 虚拟化技术 - 物理资源虚拟化 - 一个物理机部署多个APP - 每个APP运行在一个VM里面 - 一个物理机的资源分配到不同的虚拟机里,提升硬件资源利用率 - 容易扩展(增加物理机) - 很容易云化(迁移阿里云) 缺点 - 运行在完整操作系统之上,系统本身消耗资源大 ##### 容器技术 - 对软件和其依赖的标准化打包 - 应用之间的隔离 - 共享同一个OS Kerne - 可以运行在很多主流操作系统 ##### 容器技术解决了什么? 对开发 > 技术栈多,环境复杂,依赖多 对运维 >环境复杂,部署效率低,扩展难 - 解决了运维和开发之间的矛盾(建立统一标准,统一环境,和生产环境保持一致) - 在开发和运维之间搭建了一个桥梁(Devops的基础) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/bf/bb/bfbb8024f01fea2a552b1d3f221b0087_537x451.png) ##### 容器和虚拟机的区别 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/73/47/7347224c273d6998d359bbdf64906c0a_943x529.png) #### 什么是Devops? ![![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/32/c0/32c025a4040cd98b08dc48399173967a_926x497.png)](images/screenshot_1604980048928.png) #### 代码部署流程 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/3b/fb/3bfb170b04acf47e54072bbe60e9e70b_980x442.png) #### Docker底层技术 - 提供了一个开发、打包、运行APP的平台 - 把APP和底层基础设施隔离开 - Docker是个C/S架构 Docker Engine #### Docker底层技术 - 提供了一个开发、打包、运行APP的平台 - 把APP和底层基础设施隔离开 - Docker是个C/S架构 Docker Engine ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/46/18/46182d6a2dc0eda4a794b574c365a23f_524x378.png) - 后台进程(dockerd,Server) 对资源进行管理 - REST API - CLI接口(Docker) Docker version可以看到客户端和服务端信息 Docker 内部架构 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/28/d5/28d5d4920670bf5021072f26d0d4be48_733x385.png) Docker并不是创新的技术,而是利用当前Linux成熟的技术 #### Glossary 词汇表 Namespace:做隔离pid,net,ipc,mnt,uts Control groups: 做资源隔离 Union file systems:Contaner和image的分层 #### 什么是Image? - ##### 文件和meta data的集合(root filesystem) > 不包含内核,包含能让操作系统正常运行的,文件和文件夹的集合 - ##### 分层的,每层都可以添加删除文件,成为一个新的image - ##### 不同的image可以共享相同的layer >不同操作会产生一个新的层级,新的操作可以在这个分层上产生新的分层 - ##### Image本身是read-only的 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/36/cf/36cf59b8a5a623bf5ea25e7f02d417b5_640x279.png)
';