分享页面
已经找到“” 的记录3027条
Docker的基础理论梳理和安装流程演示
 

什么是docker

基于Linux而言,docker是在其中运行应用的一款开源工具,可以认为是一种轻量级的虚拟机。dockerlogo是一条载着集装箱的鲸鱼(旧版的logo),新版的logo则是直接简化了细节,更改了颜色,如下图。

从图片中就可以看出来,docker的创建和开发者们的意图。鲸鱼——宿主机,块状箱——隔离的容器(后面介绍什么是docker容器)。而docker的宗旨:BuildShip and Run Any APPAnywhere。具体而言,就是通过对应应用组件的封装、发布、部署、运行等生命周期的管理,从而达到应用组件级别的“一次封装、处处运行”的目的。

 

举个例子就好比自己开发了一款应用软件,希望它在任何地点,任何时间、任何操作系统中都可以使用的时候,就可以将它基于docker来实现。当然,对于docker而言,这个组件可以是一个应用,也可以是一个配置,甚至可以是一个完整的操作系统。

为什么需要docker

 

其实docker的出现对于开发人员是莫大的福音。设想目前或未来基于云平台的应用或软件的开发,脱离了底层的硬件,而使用者需要在任何时间、任何地点都可以获取相关的资源,那么docker便可以提供这样的诉求。

下面直接给出docker容器与传统虚拟机的比较

特性

Docker容器

虚拟机

启动速度

秒级

分钟级

计算机性能损耗

几乎不损耗

损耗一半左右

性能

接近原生

弱之

系统支持量

上千个

几十个

隔离性

资源限制

完全隔离

docker核心解决的问题是利用容器实现类似VM的功能,从而以更加节省的硬件资源给用户提供更多的计算资源,并且docker操作方便,还可以通过Dockerfile配置文件支持灵活的自动化创建和部署。

 

接下来看一下Docker与传统虚拟机架构的对比:

通过上图发现,虚拟机是在物理资源层面实现的隔离,相对于虚拟机,Docker是基于APP层面实现的隔离,并且省去了虚拟机操作系统,从而节省了一部分的系统资源。

 

Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离(为了安全),并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

 

简单来说,虚拟机和docker的区别就在于虚拟机需要通过Hypervisor对硬件资源也进行虚拟化,而docker是直接使用宿主机的硬件资源的,因此虚拟机的隔离性更加彻底,而docker的隔离性次之。

 

Docker的核心概念

1、镜像——image

可以理解为类似我们虚拟机中的快照,是创建容器的基础,可以说无镜像,不容器。

2、容器——container

基于镜像创建的运行实例,可以被启动、停止和删除。每个容器之间都是相互隔离、互不可见的。

3、仓库——repository

保存镜像的地方,可以理解为镜像囤积地。可以将自己创建的进行推送到仓库中,方便随时随地拉取使用。

 

仓库注册服务器(registry)是存放仓库的地方,其中包含了多个仓库,每个仓库中存放一类镜像,并且使用不同的标签(tag)来区分。目前最大的公共仓库就是Docker Hub,其中存放了数量庞大的镜像给用户下载使用。

这边补充说明一下docker架构:

 

Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。

架构图示:

 

Docker的安装流程

基于Linux/CentOS7的安装部署流程如下:

1.环境部署

2.安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

 

说明:

安装yum-utils软件包是为了提供一个yum-config-manager单元,同时安装的device-mapper-persistent-datalvm2用于存储设备映射必须的两个软件包。

3.设置稳定的存储库

yum-config-manager--add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

ls /etc/yum.repos.d/ #查看是否加入了一个docker

 

4.安装docker引擎

yum install -y docker-ce

5.创建docker目录,配置镜像加速服务

 

6.开启服务,查看版本

总结

本文主要介绍了docker的作用,将之与传统虚拟机进行特性对比,以及架构层面的对比,接着讲述有关docker的核心三大组成,最终给出基于LinuxCentos7操作系统中docker的安装流程。

 

Docker构建镜像的三种方式(Dockerfile初步)
 

构建镜像的三种方式:

Dockerfile

基于已有的镜像容器进行创建

基于本地模板创建

首先,我们为什么需要构建docker镜像?只有明白了这个问题,我们才知道构建docker镜像的意义或者说价值是什么。

答案其实很简单:docker镜像是docker的三大核心之一,也是应用发布的标准格式,一个完整的docker镜像可以支持一个docker容器的运行。我们在容器进行相关的操作,例如安装应用服务,假设某个业务的需求恰好需要方才安装配置好的应用服务,我们就可以将环境以及搭建的服务生成新的镜像提供出去。

下面我们来具体看看这三种方式的构建手法。

基于Dockerfile构建镜像

什么是Dockerfile

Dockerfile构建镜像的方式就目前而言是使用最为广泛的,这是一种可以自动化生成镜像的一种方式,就类似shell脚本一样,一个脚本执行完就可以将一个服务安装配置好,支持正常使用了。Dockerfile也是一样,也是由一组指令组成的文件,其中每条指令对应Linux中的一条命令,Docker程序将通过读取Dockerfile中的指令最终生成镜像。

 

Dockerfile可以认为是一个普通文件,其结构大致分为四个部分:基础镜像信息、维护者信息、镜像操作指令以及容器启动时执行指令。并且在Dockerfile中支持以“#”开头的注释。

 

Docker镜像的分层

Dockerfile中的每个指令都会创建一个新的镜像层

 

镜像层将被缓存和复用

Dockerfile的指令被修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效

某一层的镜像缓存失效后,其之后的镜像层缓存都会随之失效

镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除则镜像中依然会包含该文件

 

Dockerfile编写规则

Dockerfile中是基于其指令进行编写的,其规则可以参考下面的表格,当然,在编写Dockerfile时,其格式是需要严格遵循的:

除注释外,第一行必须使用FROM指令所基于的镜像名称;之后使用MAINTAINER指明维护信息;然后就是一系列镜像操作指令,如RUNADD等;最后便是CMD指令来指定启动容器时要运行的命令操作。其中RUN指令可以使用多条,CMD只有最后一条可以生效!

本文主要是讲述docker构建镜像的三种方式,Dockerfile的构建具体过程笔者将在之后的文章中通过各种实际案例来讲述演示,本文暂时给出一个Dockerfile文件的例子给大家参考。

[root@localhost ~]# cat Dockerfile #务必先指明基于的基础镜像

FORM CentOS:7#维护该镜像的用户信息(自定义)

MAINTAINER lokott@123.com#镜像操作命令

RUN yum -y update

RUN yum -y install openssh-server

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key#开启端口

EXPOSE 22#启动容器时执行指令

CMD ["/usr/sbin/sshd","-D"]

基于已有镜像构建镜像

上述的Dockerfile的构建镜像的方式是自动化进行的,那么手动构建的方式就是剩下的两种了。

基于已有的镜像构建主要是通过docker commit 命令来构建新的镜像,其实质就是将一个容器里面运行的程序以及该程序的运行环境打包起来生成新的镜像。

docker commit的语法规则及可选项介绍

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:

-a, --author string Author (e.g., "John Hannibal Smith ")#作者信息

-c, --change list Apply Dockerfile instruction to the created image

-m, --message string Commit message #说明信息

-p, --pause Pause container during commit (default true) #生成过程中停止容器的运行

案例:基于原有镜像构建新的镜像(看实质原理)

1.创建一个容器

2.基于该容器使用docker commit 命令创建新的镜像

基于本地模板构建镜像

该方式是通过导入操作系统模板文件生成镜像,模板可以从OPENVZ开源项目下载,下载地址为:http://openvz.org/Download/template/precreated

下面直接给出例子——将debian模板压缩包导入为本地镜像

cat debian-7.0-x86-minimal.tar.gz | docker import - lokott:new

DELL 阵列卡创建热备硬盘
 

本文主要介绍DELL阵列卡创建热备硬盘的配置方法。

 

配置Hot Spare有两种模式,一种是全局热备,也就是指这个热备硬盘可以做为这个通道上所有阵列的热备;另一种是独立热备,配置硬盘为某个指定的磁盘组中的所有虚拟磁盘做热备,也就是说这个磁盘组以外的其他阵列即使硬盘掉线,这个热备也不会去自动做rebuild

 

1.配置全局热备

首先要已经有存在的磁盘组(阵列),我们这里举例为已经配置了两个阵列,阵列0是有012三块物理磁盘配置的raid5,阵列1是由45两块物理磁盘配置的raid1,如图:

 

 

 

2.CTRL N切换至PD Mgmt界面,可以看到4号硬盘状态是Ready.

 

3.将光标移至4号硬盘,按F2,在弹出的菜单中,选择Make Global HS 配置全局的热备盘

 

4.确认后,4号硬盘的状态变为Hotspare

 

5.配置完成后,可以看到磁盘组0与磁盘1的热备都是同一个。

 

6. Mgmt菜进入PD Mgmt菜单,将光标移至热备盘处,按F2,选择Remove Hot Spare回车移除。

 

配置独立热备

1.在配置好的虚拟磁盘管理界面下,将光标移至需要配置独立热备的磁盘组上,按F2,在出现的菜单中选择Magnage DedHS

 

2.将光标移至需要配置为热备的硬盘上,按空格键,看到X标识,说明此硬盘被选择。将光标移至OK处回车,完成配置

 

3.可以看到磁盘组0已经有了热备盘,并且是Dedicated,而磁盘组并没有热备盘

 

4.移除热备,同第1步,将光标移至需要移除热备的磁盘组上,按F2,在出现的菜单中选择Manage Ded.HS

DELL C6100节点带外管理地址(IPMI)配置方法
 

IPMI是智能型平台管理接口(Intelligent Platform Management Interface)。用户可以利用IPMI监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于它是独立于CPUBIOSOS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。IPMI是一种规范的标准,由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司制定。

ipmi可以实现的主要功能

1. 可以在服务器通电(没有启动操作系统)情况下,对它进行远程管理:开机,关机,重启。

2. 基于文本的控制台重定向,可以远程查看和修改bios设置,系统启动过程,登入系统等。

3. 可以远程通过sol连接服务器,解决ssh服务无法访问,远程安装系统,查看系统启动故障等问题。

4. 故障日志记录和 SNMP 警报发送,访问系统事件日志 (System Event Log ,SEL) 和传感器状况。

一、ipmi设置界面

1.在开机到下图界面时按F2进入BIOS

2.如下图,在BIOS选项中选择Server,然后选择IPMI Cconfigurati

 

3.进到下图界面,注意确保Status Of BMC状态为WorkingSet BMC NIC一般选择Dedicated接独立的远控口(不排除选择Share的情况,此时接网口作为远控口),然后选择Set LAN Configuration

 

4.到如下图界面,BMC IP address source Static静态

 

5.选择IP Address 进入输入远控ip 例如:192.168.169.124 回车返回

6.选择Subnet Mask 进入输入掩码255.255.255.0 回车

7.Default Gateway IP网关一般不用设置,或者192.168.169.1

8.完成后按F10保存退出

 

DELL 6100开启虚拟化技术和超线程技术
 

1.在开机到下图界面时按F2进入BIOS

2.BIOS菜单中找到Advanced选项,选择CPU Configuration

 

3.找到Virtualization TechVT),选项改为EnabledVT是对于CPU内存进行虚拟化。

找到Intel VT-d,选项改为Enabled启定向 I/O 虚拟化技术。

找到Hyper-Threading TechnologyHT),选项改为Enabled,开启超线程技术。

 

4.完成后按F10保存退出

 

DELL R720 web界面更新iDRAC固件
 

1.开机看见DELL图标之后按F10进入LIFECYCLE CONTRILLER界面,选择固件更新,并启动固件更新。

 

2.将所需要更新的固件放在U盘中,选择本地驱动器,点击下一步

 

3.插入U盘点击浏览,选择相应固件,为方便使用将固件名改为IDRAC.EXE

4.选中内容,点击应用开始升级

 

5.更新过程可能会比较久,等待更新完成。

 

6.更新结束后,可以查看当前版本已确定是否更新完成。

DELL R610无法进入PXE解决方法
 

1.首先进入开机界面,按F2进入bios

 

2.进入BIOS后,选择Integrated Devices回车进入,如图:

 

3.在弹框之后,选择Embedded Gb NIC1,按空格更改参数,把参数更改为

Enabled with PXE

 

4.参数选择之后,按ESC选择保存退出。

 

5.重启,重新进入PXE,检查是否可以进入。

 

DELL iDRAC功能介绍
 

iDRAC给用户还提供了简体中文界面,比较贴心。我们可以在这个界面来查看服务器的各个部件的运行情况,以及完成服务器的管理操作,例如远程开关机、服务器虚拟控制台来控制整个服务器的运行等,同时还可以查看服务器是否被入侵过;而虚拟控制台预览则可以显示当前服务器的监视器画面。

1.iDRAC网页登陆界面

2.系统摘要

在系统摘要里面我们可以看到iDRAC列举出服务器的关键部件的运行情况,包含电池、服务器散热风扇组、机箱入侵、电源、和温度以及电压等,我们只需点击需要查看的项目即可。如果某个部分有问题,系统摘要就会显示出错误,我们可以进一步的查看具体是某个零部件出现了问题,这样我们在维修的时候就可以直击有问题的地方,能减少大概47%的维护时间。上图中列举出服务器的电源设备有问题,一会我们来查看下电源设备的工作情况。下面我们就罗列出电源、散热风扇和CPU等关键部件的工作状态查看

 

3.电源设备工作状态查看

在电源设备选项里面我们可以看到,原来远程服务器的冗余电源掉电了,只有主电源工作正常。判定好故障的所在我们就可以去机房快速解决问题,极大减少了维护的时间

 

4.散热风扇工作状态查看

这里我们看到5个风扇,在风扇冗余状态中可以看到每一个风扇的工作状态,包括当前风扇转速等,如果有某个风扇出现问题,则风扇前的状况则会出现红色的错误提示。

 

5.iDRAC虚拟控制台的远程监视器画面显示和启动虚拟介质

下面该重点内容出现了,也就是iDRAC的虚拟控制台,通过虚拟控制台可以看到服务器的监视器画面。不过在正常使用之前需要安装一个java6/8,然后会提示连接到远程的服务器,如果网络设置没有问题,远程的服务器监视器的画面就可以搬到我们的屏幕上了

 

另外,如果需要远程将某个CD/DVD或者ISO镜像映射给服务器,可以使用虚拟介质功能,这样我们就可以远程给服务器安装操作系统了。

 

6.内容详尽的系统日志

系统日志是个非常有用的功能,会记录服务器出现的各种问题和关键性信息等,这样就可以让服务器出现的每个硬件问题都变得有据可查、

 

DELL H700阵列卡组建RAID5阵列
 

本文主要介绍DELL H700阵列卡组建RAID 5阵列的配置方法。

 

1.服务器启动过程中根据提示按Ctrl-R组合键进入阵列卡管理页面:

 

2. F2展开虚拟磁盘创建菜单,使用方向键选择“Create New VD”后按回车创建新的虚拟磁盘:

 

3. 在磁盘配置界面,“RAID Level”选择“RAID-5”,接着按Tab键移至“Physical Disks”,按空格键选中所有的磁盘,然后继续按Tab键将光标移至“OK”处,回车:

 

4. 此时会出现如下提示,建议进行初始化操作(备注:如果配置阵列是为了恢复之前的数据,则不要进行初始化),按回车返回VD Mgmt主界面,配置完成:

5.在VD Mgmt主界面,将光标移至下图“Virtual Disk 0”处,按F2,可以对之前配置成功的虚拟磁盘进行初始化(Initialization)、一致性校验(Consistency Check)、删除、查看属性等操作:

 

DELL 6100接电自动开机设置
 

1.在开机到下图界面时按F2进入BIOS

2.BIOS菜单中找到Server选项

3.找到Restore on AC Power Loss,按回车把选项改为Power on

4.完成后按F10保存退出

扫码添加专属客服

扫码关注公众号