400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > 軟件測試 > 【軟件測試基礎知識】Docker容器化技術(shù)在測試平臺部署中的應用

【軟件測試基礎知識】Docker容器化技術(shù)在測試平臺部署中的應用

  • 發(fā)布: 軟件測試培訓
  • 來(lái)源:軟件測試干貨資料
  • 2021-08-25 10:48:24
  • 閱讀()
  • 分享
  • 手機端入口

當前,虛擬化技術(shù)在互聯(lián)網(wǎng)后端應用非常廣泛,它可以?xún)?yōu)化資源利用、方便跨域共享、實(shí)現資源隔離。對于企業(yè)中的測試人員來(lái)說(shuō),也不可避免地會(huì )接觸到,所以有必要加深對它的了解和熟悉。當測試人員職業(yè)技能發(fā)展到自動(dòng)化測試、測試開(kāi)發(fā)層次,相應的工作也很可能會(huì )從寫(xiě)腳本、搭建框架,升級到開(kāi)發(fā)測試平臺,如何高效地實(shí)現測試平臺的部署、維護,也成為測試人員需要面對的一個(gè)問(wèn)題。本文就從Docker的原理開(kāi)始,介紹一下Docker容器化技術(shù)在測試平臺部署中的應用。

虛擬化常用的技術(shù)形式,有主機級虛擬化和容器級虛擬化兩種形式。

我們通常使用的虛擬機(如VMWare WorkStation),就是典型的主機級虛擬化的形式。在宿主機硬件平臺上,先安裝宿主機操作系統,然后在操作系統中安裝虛擬機管理器。在這個(gè)虛擬機管理器的基礎之上,可以虛擬出多個(gè)硬件平臺(如果你的電腦資源足夠),然后每個(gè)硬件平臺上再安裝自己的操作系統內核,構造自己的用戶(hù)空間。這種情況下,不同虛擬機之間的隔離性是非常好的,但過(guò)于重量級,消耗大量軟硬件資源。

Linux內核的不斷演進(jìn),使容器級虛擬化成為現實(shí)。容器級虛擬化,在宿主機硬件平臺的Linux操作系統中,增加一個(gè)隔離環(huán)境管理器,借助這個(gè)隔離環(huán)境管理器,直接分出若干個(gè)用戶(hù)空間。這些用戶(hù)空間中部分資源共享,其他資源則實(shí)現徹底的隔離。

容器級虛擬化,是借助于Linux內核的三大技術(shù)來(lái)實(shí)現的。這三大技術(shù)就是Chroot、名稱(chēng)空間和CGroups。

Chroot是操作系統級的虛擬機,它可以將指定位置作為/根目錄,將程序運行限制在指定根目錄中,從而實(shí)現操作系統中虛擬出多個(gè)根目錄,實(shí)現了可視化的隔離。

名稱(chēng)空間總共有Mount(文件系統)、UTS(主機名、域名)、IPC(信號量、消息隊列、共享內存)、PID(進(jìn)程編號)、NetWork(網(wǎng)絡(luò )設備、網(wǎng)絡(luò )棧、端口等)、User(用戶(hù)、用戶(hù)組)六個(gè)。從Linux2.4.19開(kāi)始,直到3.8版本,依次實(shí)現了對這六個(gè)名稱(chēng)空間的隔離。

CGroups,用來(lái)為隔離的用戶(hù)空間按比例分配CPU、內存等資源。

在以上技術(shù)的支撐下,通過(guò)系統調用,即可實(shí)現容器級虛擬化。但對普通用戶(hù)來(lái)說(shuō),系統調用難度太大,于是在Sourceforge上產(chǎn)生了一個(gè)叫做LXC的項目。LXC是LinuX Container的簡(jiǎn)稱(chēng),它通過(guò)二次開(kāi)發(fā),把系統調用和操作封裝成了一組工具。它最早把完整的容器技術(shù)用一組工具和模板實(shí)現。但它也存在一些問(wèn)題,如模板需要高度定制,文件和數據遷移困難,對容器批量創(chuàng )建的支持有限,隔離性不夠好。于是,在2013年初,在LXC基礎上,dotCloud公司推出了開(kāi)源項目Docker,讓用戶(hù)不用關(guān)心容器內部的管理,操作更加簡(jiǎn)捷。

Docker不是容器,容器是Linux內核支持的功能,而Docker是容器化的簡(jiǎn)化工具。Docker通過(guò)鏡像技術(shù) ,把用戶(hù)空間所需文件整體編排好,打包成鏡像文件,放在一個(gè)集中的倉庫。生成用戶(hù)空間時(shí),連到服務(wù)器上,找到鏡像,拖到本地,基于鏡像啟動(dòng)容器。這極大地降低了容器的使用難度。在一個(gè)容器中只運行一個(gè)主進(jìn)程,進(jìn)程終止,容器終止。分發(fā)部署容易,真正實(shí)現了“一次編寫(xiě)到處運行”。

Docker架構如下:

(1)Docker 守護進(jìn)程(Daemon)

Docker守護進(jìn)程(dockerd)監聽(tīng)Docker API請求,并管理Docker對象,如鏡像(Images)、容器(Containers)、網(wǎng)絡(luò )(Networks)和卷(Volumes)。守護進(jìn)程還可以與其他守護進(jìn)程通信來(lái)管理Docker服務(wù)。

(2)Docker 客戶(hù)端(Client)

Docker客戶(hù)端(Docker)是Docker用戶(hù)與Docker交互的主要方式。當你使用像docker run這樣的命令時(shí),客戶(hù)端將這些命令發(fā)送給dockerd,由dockerd執行它們。docker命令會(huì )使用到docker API。Docker客戶(hù)端可以與多個(gè)守護進(jìn)程通信。

(3)Docker 倉庫(registry)

Docker Registry存儲Docker鏡像。在這些Registry中,Docker Hub是一個(gè)任何人都可以使用的公共注冊中心,默認情況下,Docker被配置為在Docker Hub上查找鏡像。您甚至可以運行自己的私有Registry。當你使用docker pull或docker run命令時(shí),所需的鏡像會(huì )從你配置的Registry中提取出來(lái)。當你使用docker push命令時(shí),你的鏡像會(huì )被推送到你配置的Registry中。Registry包含很多個(gè)Repository,例如,我們可以在Docker hub上查看其下的Repository,它們通常按用戶(hù)、鏡像中的程序劃分。

Docker安裝步驟如下:

(1)如果已經(jīng)安裝舊版,可以卸載:

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

(2)安裝基礎依賴(lài)

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)如果連接不上,可以使用以下中國科學(xué)技術(shù)大學(xué)的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相關(guān)文件后再增加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)啟動(dòng)docker

systemctl start docker

(10)設置開(kāi)機啟動(dòng)docker

systemctl enable docker

(11)驗證安裝

文章“【軟件測試基礎知識】Docker容器化技術(shù)在測試平臺部署中的應用”已幫助

>>本文地址:http://www.76097.cn/zhuanye/2021/69754.html

THE END  

聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營(yíng)全域電商運營(yíng)
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網(wǎng)頁(yè)設計網(wǎng)頁(yè)設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò )安全網(wǎng)絡(luò )安全
  • 新媒體與短視頻運營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開(kāi)發(fā)智能機器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME