IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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 虚拟化发展史

????????1.2.1 虚拟化类型

? ? ? ? 二、docker概述

? ? ? ? 2.1 概述

? ? ? ? ?2.1.1 docker的意义

? ? ? ? 2.2 docker组件

? ? ? ? 2.2.1 虚拟化和容器的区别

? ? ? ? 2.3 docker 引擎

? ? ? ? ?2.4 名称空间

? ? ? ? ?2.5 控制组

? ? ? ? 三、部署docker

? ? ? ? 3.1 部署步骤

? ? ? ? ?3.2 配置镜像加速

?????????3.3 网络加速


????????一、什么是虚拟化

????????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 虚拟化和容器的区别

不同点containerVM
启动速度秒级分钟级
运行性能接近原生50%左右
磁盘占用MBGB
数量成百上千十几台左右
隔离性进程级别系统级别
操作系统主要支持Linux几乎所有
封装程度只打包项目代码和依赖关系,共享宿主机的内核完整的操作系统,与宿主机隔离

? ? ? ? 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个名称空间:

mount文件系统,挂载点
user操作进程的用户和用户组
pid进程编号
uts主机名和主机域
ipc信号量、消息队列,共享内存
net网络设备、网络协议栈、端口等

? ? ? ? ?2.5 控制组

????????Linux上的 Docker引擎还依赖于另一种称为控制组( cgroups)的技术。cgroup_将应用程序限制为一组特定的资源。控制组允许DockerEngine 将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。

? ? ? ? 三、部署docker

? ? ? ? 3.1 部署步骤

##安装依赖包
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
##设置阿里云镜像源
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
##安装 Docker-CE 社区版并设开机自动启动
[root@docker ~]# yum install -y docker-ce
[root@docker ~]# systemctl start docker.service
[root@docker ~]# systemctl enable docker.service

? ? ? ? ?当安装失败的话请关注错误信息查看内核版本是否支持

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

?

? ? ? ? ?3.2 配置镜像加速

?##再次重启服务

[root@docker docker]# sudo systemctl daemon-reload
[root@docker docker]# sudo systemctl restart docker

?????????3.3 网络加速

##开启路由转发
[root@docker docker]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

##刷新配置文件
[root@docker docker]# sysctl -p
##重启服务
[root@docker docker]# systemctl restart docker
[root@docker docker]# systemctl restart network

? ? ? ? ?开启路由网关原因:docker拥有独立的网段172.17.0网段,宿主机需要跨网段访问出去,要开启路由转发,进行高效的网络转发

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:27:51  更:2022-01-12 00:29:00 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码