| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 虚拟化解决方案:docker -> 正文阅读 |
|
[系统运维]虚拟化解决方案:docker |
目录 ????????一、什么是虚拟化????????1.1 虚拟化的概述????????虚拟化以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机等) ????????1.2 虚拟化发展史雏形: ????????1961年,IBM709机器实现了分时系统,将cPU占用切分为多个极短的时间片(1/100sec)每一个时间片执行不同的工作,通过对这些时间片进迸行轮询从而将一个CPU伪装成多个CPU ????????1972年,IBM正式将system370机的分时系统命名为虚拟机 ????????1990年,IBM推出的system390机支持逻辑分区(将一个CPU分为多份,相互独立,也就是逻辑分割) ????????Xen 2003年问世,是一个外部的hypervisor/VWMM程序(虚拟机管理程序),能够控制宿主机和给多个客户机分配资源KVM:2007年问世,现己内置在kernel内核中的 ????????xen 支持的虚拟化技术:全虚拟化,半虚拟化 ????????KVM:支持的虚拟化技术:全虚拟化 ????????1.2.1 虚拟化类型????????全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用 ????????半虚拟化:需要修改操作系统 ????????直通:直接使用物理硬件资源 ? ? ? ? 优势:集中化管理(远程管理、维护) ????????提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了"空闲"容量) ????????动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性) ????????高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境) ? ? ? ? 劣势: ????????前期高额费用(初期的硬件支持) 降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化) 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏) ????????实施配置复杂、管理复杂(管理人员运维、排障困难) 一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用) ????????安全性(虚拟化技术自身的安全隐患) ? ? ? ? 二、docker概述? ? ? ? 2.1 概述????????docker是一个用于开发,交付和运行应用程序开放的平台是一个开源的应用容器引擎,让开发者可以打包其应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 ? ? ? ? 沙箱:在计算机安全领域,沙箱是一种程序的隔离运行机制。? ? ? ? ? ?2.1.1 docker的意义????????docker引擎统一了基础设施环境-docker容器环境(引擎) ????????docker引擎统一了程序打包(装箱)方式-docker镜像(封装的某一个时刻的服务/应用状态 ) ????????docker引擎统一了程序部署(运行)方式-docker容器(应用跑起来的状态 ) ? ? ? ? 2.2 docker组件????????Docker守护程序( dockerd)侦听 Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。 ????????Docker images:镜像 ????????Docker container:容器 ????????Docker registry:镜像仓库 ? ? ? ? Docker harbor:本地镜像 ? ? ? ? Docker hub:公共仓库 ????????存储镜像的地方,默认在公共的docker hub上查找,由于docker仓库延迟的原因可以创建个人仓库方便使用。 ? ? ? ? ?镜像获取流程:客户机发送命令请求镜像,daemon查看本地是否存在客户机所请求的镜像,如果有返回,没有则向registry镜像仓库请求镜像将镜像放入至容器。 ? ? ?? ? ? ? ? 2.2.1 虚拟化和容器的区别
? ? ? ? 2.3 docker 引擎????????Docker Engine是具有以下主要组件的客户端-服务器应用程序(C/S端): 服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)。 REST API,它指定程序可以用来与守护程序进行通信并指示其操作的 接口。 ? ? ? ? 流程:客户端使用命令传入方式和restAPL进行交互,命令通过restAPI,进入内核中的docker-server端,由server端进行处理,返回通过rest API 返回给docker-client端进行展示。 ? ? ? ? ?2.4 名称空间????????Docker使用一种称为namespaces提供容器的隔离工作区的技术。运 行容器时,Docker会为该容器创建一组名称空间。 这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。 ????????docker中的6个名称空间:
? ? ? ? ?2.5 控制组????????Linux上的 Docker引擎还依赖于另一种称为控制组( cgroups)的技术。cgroup_将应用程序限制为一组特定的资源。控制组允许DockerEngine 将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。 ? ? ? ? 三、部署docker? ? ? ? 3.1 部署步骤
? ? ? ? ?当安装失败的话请关注错误信息查看内核版本是否支持
? ? ? ? ? ?3.2 配置镜像加速
?????????3.3 网络加速
? ? ? ? ?开启路由网关原因:docker拥有独立的网段172.17.0网段,宿主机需要跨网段访问出去,要开启路由转发,进行高效的网络转发 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:27:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |