400-650-7353
您所在的位置:首页 > IT干货资料 > 软件测试 > 【软件测试基础知识】Docker容器化技术在测试平台部署中的应用

【软件测试基础知识】Docker容器化技术在测试平台部署中的应用

  • 发布: 软件测试培训
  • 来源:软件测试干货资料
  • 2021-08-25 10:48:24
  • 阅读()
  • 分享
  • 手机端入口

当前,虚拟化技术在互联网后端应用非常广泛,它可以优化资源利用、方便跨域共享、实现资源隔离。对于企业中的测试人员来说,也不可避免地会接触到,所以有必要加深对它的了解和熟悉。当测试人员职业技能发展到自动化测试、测试开发层次,相应的工作也很可能会从写脚本、搭建框架,升级到开发测试平台,如何高效地实现测试平台的部署、维护,也成为测试人员需要面对的一个问题。本文就从Docker的原理开始,介绍一下Docker容器化技术在测试平台部署中的应用。

虚拟化常用的技术形式,有主机级虚拟化和容器级虚拟化两种形式。

我们通常使用的虚拟机(如VMWare WorkStation),就是典型的主机级虚拟化的形式。在宿主机硬件平台上,先安装宿主机操作系统,然后在操作系统中安装虚拟机管理器。在这个虚拟机管理器的基础之上,可以虚拟出多个硬件平台(如果你的电脑资源足够),然后每个硬件平台上再安装自己的操作系统内核,构造自己的用户空间。这种情况下,不同虚拟机之间的隔离性是非常好的,但过于重量级,消耗大量软硬件资源。

Linux内核的不断演进,使容器级虚拟化成为现实。容器级虚拟化,在宿主机硬件平台的Linux操作系统中,增加一个隔离环境管理器,借助这个隔离环境管理器,直接分出若干个用户空间。这些用户空间中部分资源共享,其他资源则实现彻底的隔离。

容器级虚拟化,是借助于Linux内核的三大技术来实现的。这三大技术就是Chroot、名称空间和CGroups。

Chroot是操作系统级的虚拟机,它可以将指定位置作为/根目录,将程序运行限制在指定根目录中,从而实现操作系统中虚拟出多个根目录,实现了可视化的隔离。

名称空间总共有Mount(文件系统)、UTS(主机名、域名)、IPC(信号量、消息队列、共享内存)、PID(进程编号)、NetWork(网络设备、网络栈、端口等)、User(用户、用户组)六个。从Linux2.4.19开始,直到3.8版本,依次实现了对这六个名称空间的隔离。

CGroups,用来为隔离的用户空间按比例分配CPU、内存等资源。

在以上技术的支撑下,通过系统调用,即可实现容器级虚拟化。但对普通用户来说,系统调用难度太大,于是在Sourceforge上产生了一个叫做LXC的项目。LXC是LinuX Container的简称,它通过二次开发,把系统调用和操作封装成了一组工具。它最早把完整的容器技术用一组工具和模板实现。但它也存在一些问题,如模板需要高度定制,文件和数据迁移困难,对容器批量创建的支持有限,隔离性不够好。于是,在2013年初,在LXC基础上,dotCloud公司推出了开源项目Docker,让用户不用关心容器内部的管理,操作更加简捷。

Docker不是容器,容器是Linux内核支持的功能,而Docker是容器化的简化工具。Docker通过镜像技术 ,把用户空间所需文件整体编排好,打包成镜像文件,放在一个集中的仓库。生成用户空间时,连到服务器上,找到镜像,拖到本地,基于镜像启动容器。这极大地降低了容器的使用难度。在一个容器中只运行一个主进程,进程终止,容器终止。分发部署容易,真正实现了“一次编写到处运行”。

Docker架构如下:

(1)Docker 守护进程(Daemon)

Docker守护进程(dockerd)监听Docker API请求,并管理Docker对象,如镜像(Images)、容器(Containers)、网络(Networks)和卷(Volumes)。守护进程还可以与其他守护进程通信来管理Docker服务。

(2)Docker 客户端(Client)

Docker客户端(Docker)是Docker用户与Docker交互的主要方式。当你使用像docker run这样的命令时,客户端将这些命令发送给dockerd,由dockerd执行它们。docker命令会使用到docker API。Docker客户端可以与多个守护进程通信。

(3)Docker 仓库(registry)

Docker Registry存储Docker镜像。在这些Registry中,Docker Hub是一个任何人都可以使用的公共注册中心,默认情况下,Docker被配置为在Docker Hub上查找镜像。您甚至可以运行自己的私有Registry。当你使用docker pull或docker run命令时,所需的镜像会从你配置的Registry中提取出来。当你使用docker push命令时,你的镜像会被推送到你配置的Registry中。Registry包含很多个Repository,例如,我们可以在Docker hub上查看其下的Repository,它们通常按用户、镜像中的程序划分。

Docker安装步骤如下:

(1)如果已经安装旧版,可以卸载:

yum remove docker docker-common docker-selinux docker-engine

(2)安装基础依赖

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

(3)增加docker yum源

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

(4)如果连接不上,可以使用以下中国科学技术大学的yum源

yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

(5)如果报错,删除对应文件

cd /etc/yum.repos.d/

删除mirrors.ustc.edu.cn相关文件后再增加yum源。

(6)查看docker版本

yum list docker-ce --showduplicates

(7)安装docker

yum install -y docker-ce

(8)如果需要安装指定版本,如下

yum install -y docker-ce-18.06.3.ce

(9)启动docker

systemctl start docker

(10)设置开机启动docker

systemctl enable docker

(11)验证安装

文章“【软件测试基础知识】Docker容器化技术在测试平台部署中的应用”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2021/69754.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME