虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件 陳寶文 項(xiàng)目6-8 網(wǎng)絡(luò)存儲(chǔ)搭建和使用、ker技術(shù)、騰訊云服務(wù)_第1頁
虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件 陳寶文 項(xiàng)目6-8 網(wǎng)絡(luò)存儲(chǔ)搭建和使用、ker技術(shù)、騰訊云服務(wù)_第2頁
虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件 陳寶文 項(xiàng)目6-8 網(wǎng)絡(luò)存儲(chǔ)搭建和使用、ker技術(shù)、騰訊云服務(wù)_第3頁
虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件 陳寶文 項(xiàng)目6-8 網(wǎng)絡(luò)存儲(chǔ)搭建和使用、ker技術(shù)、騰訊云服務(wù)_第4頁
虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 課件 陳寶文 項(xiàng)目6-8 網(wǎng)絡(luò)存儲(chǔ)搭建和使用、ker技術(shù)、騰訊云服務(wù)_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

虛擬化與云計(jì)算應(yīng)用實(shí)踐

項(xiàng)目化教程

項(xiàng)目6網(wǎng)絡(luò)存儲(chǔ)搭建和使用

學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)了解存儲(chǔ)系統(tǒng)網(wǎng)絡(luò)架構(gòu);了解分布式存儲(chǔ)技術(shù)。技能目標(biāo)掌握Openfiler安裝和配置;掌握NFS和iSCSI存儲(chǔ)搭建和使用;掌握HDFS和MooseFS搭建和使用。通過本課程的學(xué)習(xí)你將可以項(xiàng)目引導(dǎo)網(wǎng)絡(luò)存儲(chǔ)搭建和使用隨著存儲(chǔ)技術(shù)的不斷發(fā)展和完善,企業(yè)的IT技術(shù)架構(gòu)正從以服務(wù)器為中心逐漸向以數(shù)據(jù)存儲(chǔ)為中心的方向演變。不斷增長的數(shù)據(jù)量也讓傳統(tǒng)的基礎(chǔ)架構(gòu)、數(shù)據(jù)存儲(chǔ)方式面臨新的挑戰(zhàn)。在本項(xiàng)目中,重點(diǎn)介紹基于文件系統(tǒng)的存儲(chǔ)和基于設(shè)備的存儲(chǔ),拓展存儲(chǔ)虛擬化知識(shí)。主流的存儲(chǔ)架構(gòu)技術(shù)知識(shí)準(zhǔn)備任務(wù)實(shí)施14安裝Openfiler存儲(chǔ)平臺(tái)使用Openfiler搭建NFS存儲(chǔ)123使用Openfiler搭建iSCSI存儲(chǔ)HDFS安裝配置和使用2分布式存儲(chǔ)技術(shù)5MooseFS安裝配置和使用1主流的存儲(chǔ)架構(gòu)技術(shù)主流的存儲(chǔ)架構(gòu)技術(shù)包括直連式存儲(chǔ)、網(wǎng)絡(luò)接入存儲(chǔ)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)。1.直連式存儲(chǔ)(Direct-AttachedStorage,DAS)2.網(wǎng)絡(luò)接入存儲(chǔ)(Network-AttachedStorage,NAS)3.存儲(chǔ)區(qū)域網(wǎng)絡(luò)(StorageAreaNetwork,SAN)2分布式存儲(chǔ)技術(shù)分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。常見的分布式存儲(chǔ)系統(tǒng)包括HDFS、MooseFS等。1.HDFSHDFS(HadoopDistributedFileSystem)是Hadoop項(xiàng)目的核心子項(xiàng)目,Hadoop三大核心子項(xiàng)目還包括資源管理系統(tǒng)YARN、分布式計(jì)算框架MapReduce。2分布式存儲(chǔ)技術(shù)2.MooseFSMooseFS是一款具有冗余容錯(cuò)功能的分布式文件系統(tǒng)。它把數(shù)據(jù)分散在多臺(tái)服務(wù)器上,確保一份數(shù)據(jù)多個(gè)備份副本,對(duì)外提供統(tǒng)一的結(jié)構(gòu)。MFS分布式文件系統(tǒng)由元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)日志服務(wù)器,數(shù)據(jù)存儲(chǔ)服務(wù)器,客戶端等幾部分組成。項(xiàng)目實(shí)施任務(wù)6-1安裝Openfiler存儲(chǔ)平臺(tái)任務(wù)6-2使用Openfiler搭建NFS存儲(chǔ)任務(wù)6-3使用Openfiler搭建iSCSI存儲(chǔ)任務(wù)6-4HDFS安裝配置和使用任務(wù)6-5MooseFS安裝配置和使用需要完成的任務(wù):項(xiàng)目實(shí)施包括6個(gè)具體任務(wù)。本項(xiàng)目包括使用veth、實(shí)現(xiàn)橋接、NAT模型,安裝openvswitch,使用OVS管理網(wǎng)橋及創(chuàng)建gre隧道。

Project任務(wù)實(shí)施1安裝Openfiler存儲(chǔ)平臺(tái)Openfiler是一款開源免費(fèi)的存儲(chǔ)管理操作系統(tǒng),通過web界面管理磁盤。Openfiler支持流行的網(wǎng)絡(luò)存儲(chǔ)技術(shù),如IP-SAN和NAS,支持iSCSI、NFS、SMB/CIFS及FTP等協(xié)議。從Openfiler官網(wǎng)下載OpenfilerNAS/SANAppliance,version2.99鏡像,這個(gè)鏡像基于RHEL6定制,內(nèi)核使用2.6.32,提供的是x86_64位版本。(1)參考安裝RHEL6的步驟在VMwareWorkstation中安裝Openfiler2.99。安裝模式有圖形界面和文本界面安裝模式兩種選擇。(2)安裝完成,從光驅(qū)中取出安裝鏡像,單擊“Reboot”重新啟動(dòng)計(jì)算機(jī)。(3)Openfiler的默認(rèn)用戶名為openfiler,密碼為password(4)在瀏覽器輸入29:446/開啟Openfiler的Web界面。這里29為當(dāng)前Openfiler操作系統(tǒng)的ip地址,446為服務(wù)端口任務(wù)實(shí)施2使用Openfiler搭建NFS存儲(chǔ)在本任務(wù)中,通過VMwareWorkstation為Openfiler添加一塊1G磁盤作為NFS共享磁盤。接下來在Openfiler中執(zhí)行創(chuàng)建物理卷、創(chuàng)建卷組、創(chuàng)建邏輯卷、共享設(shè)置策略、網(wǎng)絡(luò)訪問控制策略、啟動(dòng)服務(wù)、測試等操作步驟。(1.創(chuàng)建物理卷(1)單擊Openfiler頁面中的“Volumes”選項(xiàng)。在頁面右側(cè)的功能列表區(qū)中點(diǎn)選“BlockDevices”,頁面左側(cè)顯示的“BlockDeviceManagement”用來對(duì)物理磁盤進(jìn)行管理。在BlockDeviceManagement中的/dev/sdb是新添加的1GB磁盤。單擊“/dev/sdb”進(jìn)入創(chuàng)建分區(qū)界面。(2)在“Createapartitionin/dev/sdb”頁面中,單擊“create”創(chuàng)建默認(rèn)的物理卷分區(qū)。(3)新創(chuàng)建的分區(qū)/dev/sdb1即為物理卷。2.創(chuàng)建卷組單擊Openfiler菜單欄,在volumessection里選擇VolumeGroups,對(duì)卷組進(jìn)行管理。在管理界面可以看到前面創(chuàng)建的物理卷/dev/sdb1。(1)勾選要添加到卷組的物理卷/dev/sdb1,給即將創(chuàng)建的卷組取個(gè)名字vg1,單擊“Addvolumegroup”按鈕將物理卷/dev/sdb1添加到卷組vg1中。(2)卷組vg1信息查看。3.創(chuàng)建邏輯卷(1)在卷組vg1上創(chuàng)建邏輯卷。在volumessection里選擇“AddVolume”進(jìn)入添加邏輯卷界面。首先在“SelectVolumeGroup”中選擇卷組vg1,然后單擊“Change”按鈕。(2)在界面中“Createavolumein‘vg1’”中填上希望創(chuàng)建的邏輯卷的名稱、邏輯卷描述、需要分配給該邏輯卷的大小以及邏輯卷的文件類型等,單擊“Create”按鈕創(chuàng)建邏輯卷。注意暫時(shí)不要選擇block類型,選擇的XFS和Ext*等類型可以即刻在邏輯卷上創(chuàng)建文件,對(duì)外提供文件共享服務(wù)。4.共享設(shè)置策略(1)Openfiler中的“Shares”選項(xiàng)是對(duì)文件進(jìn)行共享設(shè)置。單擊邏輯卷,彈出創(chuàng)建邏輯卷子文件夾的選項(xiàng)。輸入文件夾名稱data,單擊“CreateSub-folder”,創(chuàng)建子文件夾。任務(wù)實(shí)施2使用Openfiler搭建NFS存儲(chǔ)(2)單擊文件夾data,彈出界面上還可以創(chuàng)建更多的子文件夾并設(shè)置共享。單擊“MakeShare”按鈕進(jìn)入共享設(shè)置。(3)進(jìn)入共享設(shè)置頁面后,可以選擇“ShareAccessControlMode”或“Hostaccessconfiguration”兩種模式。選擇ShareAccessControlMode,這種模式又包括包括Publicguestaccess和Controlledaccess。選擇后單擊“Update”按鈕。5.網(wǎng)絡(luò)訪問控制策略(1)單擊“System”選項(xiàng),在右側(cè)出現(xiàn)的功能列表中選擇“NetworkSetup”。(2)“NetworkSetup”用于設(shè)置網(wǎng)絡(luò)訪問策略。每一個(gè)策略都可以針對(duì)主機(jī)IP地址或網(wǎng)段進(jìn)行權(quán)限設(shè)置,達(dá)到控制訪問目的。這里設(shè)置訪問策略名為share,Network/Host的.代表允許網(wǎng)絡(luò)中的所有主機(jī)都訪問共享存儲(chǔ)空間,單擊“Update”按鈕更新策略。6.啟用和啟動(dòng)共享(1)單擊Openfiler的Services,選擇啟用和啟動(dòng)CIFSServer和NFSServer,其狀態(tài)分別變?yōu)镋nable和Running。(2)返回Openfiler的“Shares”共享設(shè)置策略??梢园l(fā)現(xiàn)“Hostaccessconfiguration”選項(xiàng)中出現(xiàn)了share策略,將NFS選項(xiàng)下的權(quán)限改成RW,單擊Update按鈕。這里的修改會(huì)寫入Openfiler的/etc/exports文件。7.測試NFS共享存儲(chǔ)的可用性(1)在RHEL8上查看Openfiler上的NFS共享情況。(2)RHEL8掛載Openfiler上NFS共享目錄。(3)在RHEL8上創(chuàng)建一個(gè)大小為1MB的文件d,測試共享存儲(chǔ)可用。任務(wù)實(shí)施3使用Openfiler搭建iSCSI存儲(chǔ)Internet小型計(jì)算機(jī)系統(tǒng)接口(InternetSmallComputerSystemInterface,iSCSI)是2003年IETF(InternetEngineeringTaskForce,互聯(lián)網(wǎng)工程任務(wù)組)制訂的一項(xiàng)bcm5722ISCSI網(wǎng)卡標(biāo)準(zhǔn),用于將SCSI(SmallComputerSystemInterface)數(shù)據(jù)塊映射成以太網(wǎng)數(shù)據(jù)包。1.iSCSI工作過程當(dāng)iSCSI主機(jī)應(yīng)用程序發(fā)出數(shù)據(jù)讀寫請(qǐng)求后,操作系統(tǒng)會(huì)生成一個(gè)相應(yīng)的SCSI命令,該SCSI命令在iSCSIinitiator層被封裝成iSCSI消息包并通過TCP/IP傳送到設(shè)備側(cè),設(shè)備側(cè)的iSCSItarget層會(huì)解開iSCSI消息包,得到SCSI命令的內(nèi)容,然后傳送給SCSI設(shè)備執(zhí)行;設(shè)備執(zhí)行SCSI命令后的響應(yīng),在經(jīng)過設(shè)備側(cè)iSCSItarget層時(shí)被封裝成iSCSI響應(yīng)PDU,通過TCP/IP網(wǎng)絡(luò)傳送給主機(jī)的iSCSIinitiator層,iSCSIinitiator會(huì)從iSCSI響應(yīng)PDU里解析出SCSI響應(yīng)并傳送給操作系統(tǒng),操作系統(tǒng)再響應(yīng)給應(yīng)用程序。里解析出SCSI響應(yīng)并傳送給操作系統(tǒng),操作系統(tǒng)再響應(yīng)給應(yīng)用程序。2.SCSI啟動(dòng)器從本質(zhì)上說,iSCSI啟動(dòng)器是一個(gè)客戶端設(shè)備,它連接到服務(wù)器提供的某一服務(wù),并發(fā)起對(duì)該服務(wù)的請(qǐng)求。如果利用iSCSI創(chuàng)建RAC,iSCSI啟動(dòng)器軟件需要安裝在每個(gè)OracleRAC節(jié)點(diǎn)上。iSCSI啟動(dòng)器可以用軟件實(shí)現(xiàn),也可以用硬件實(shí)現(xiàn)。軟件iSCSI啟動(dòng)器可用于大部分主要操作系統(tǒng)平臺(tái),可以使用iscsi-initiator-utils

RPM中提供的免費(fèi)LinuxOpen-iSCSI軟件驅(qū)動(dòng)程序。iSCSI軟件啟動(dòng)器通常與標(biāo)準(zhǔn)網(wǎng)絡(luò)接口卡(NIC)(大多數(shù)情況下是千兆位以太網(wǎng)卡)配合使用。硬件啟動(dòng)器是一個(gè)iSCSI

HBA(或TCP卸載引擎(TOE)卡),它本質(zhì)上只是一個(gè)專用以太網(wǎng)卡,其上的SCSIASIC可以從系統(tǒng)CPU內(nèi)卸載所有工作(TCP和SCSI命令)。iSCSI

HBA可以從許多供應(yīng)商處購買,包括Adaptec、Alacritech、Intel和QLogic。3.iSCSI目標(biāo)SCSI目標(biāo)是iSCSI網(wǎng)絡(luò)的“服務(wù)器”組件。它通常是一個(gè)存儲(chǔ)設(shè)備,包含所需的信息并響應(yīng)來自一個(gè)或多個(gè)啟動(dòng)器的請(qǐng)求。任務(wù)實(shí)施3使用Openfiler搭建iSCSI存儲(chǔ)本任務(wù)中將Openfiler作為iSCSItarget服務(wù)器。在此需要執(zhí)行創(chuàng)建物理卷、創(chuàng)建卷組、創(chuàng)建邏輯卷、配置網(wǎng)絡(luò)訪問、設(shè)置iSCSI服務(wù),創(chuàng)建iSCSI目標(biāo)等6個(gè)步驟。步驟1:創(chuàng)建物理卷。在VMwareWorkstation里為Openfiler添加4塊20GB硬盤,通過瀏覽器連接Openfiler,在菜單欄選擇Volumes后在所在頁面右側(cè)單擊BlockDevices,可以看到安裝了系統(tǒng)的硬盤sda,上一個(gè)任務(wù)的NFS硬盤sdb,以及新添加的4塊新硬盤sdc、sdd、sde、sdf步驟2:創(chuàng)建卷組。(1)單擊對(duì)應(yīng)的硬盤如/dev/sdc等創(chuàng)建分區(qū),用這4個(gè)硬盤做軟RAID。選擇RAIDarraymember類型,單擊create按鈕,其余3塊盤做同樣操作。(2)在右側(cè)單擊SoftwareRAID,選擇RAID-5(parity),勾選新添加的4個(gè)分區(qū),其中3個(gè)分區(qū)建立RAID,1個(gè)分區(qū)備用。單擊“Addarray”按鈕創(chuàng)建RAID-5陣列md0。(3)單擊右側(cè)VolumeGroups,勾選/dev/md0,設(shè)置卷組名稱iscsi_vg0并單擊“Addvolumegroup”按鈕,添加卷組。步驟3:創(chuàng)建邏輯卷。(1)在頁面右側(cè)單擊“AddVolume”,選擇卷組iscsi_vg0,單擊“Change”按鈕。(2)在顯示的頁面上添加卷名iscsi_lv0,大小設(shè)為10240MB,類型選擇為block,單擊“Create”按鈕。(3)創(chuàng)建完成后的iscsi卷。步驟4:配置網(wǎng)絡(luò)訪問。單擊Openfiler菜單欄System,在NetworkSetup中添加網(wǎng)絡(luò)策略test,允許IP地址訪問。單擊“Update”按鈕。步驟5:啟動(dòng)iSCSI服務(wù)。單擊菜單欄Services,啟動(dòng)iSCSITarget服務(wù)。任務(wù)實(shí)施3使用Openfiler搭建iSCSI存儲(chǔ)步驟6:創(chuàng)建iSCSI目標(biāo)。(1)選擇菜單欄Volumes。單擊右側(cè)的iSCSITargets,在彈出的頁面中,在TargetConfiguration添加新的iSCSITarget,這個(gè)TargetIQN碼是系統(tǒng)自動(dòng)生成的,只需單擊“add”按鈕即可。(2)LUN映射。選擇LUNMapping,單擊“Map”按鈕,掛載iscsi卷。(3)網(wǎng)絡(luò)ACL。選擇NetworkACL,設(shè)置Access為Allow,允許放行,單擊“Update”按鈕。(4)CHAP認(rèn)證。選擇CHAPAuthentication,添加CHAPusertotarget,這里用戶名為user1,密碼輸入12位密碼,單擊“Add”按鈕。4.Windows7連接iSCSI目標(biāo)(1)依次打開Windows7控制面板-→系統(tǒng)和安全-→管理工具,打開iSCSI發(fā)起程序。(其他Window版本發(fā)起iSCSI連接稍有差異)第一次打開iSCSI發(fā)起程序,會(huì)提示需要開啟iSCSI服務(wù),直接單擊“是”即可。(2)在iSCSI發(fā)起程序?qū)傩悦姘逯幸来螁螕舭l(fā)現(xiàn)-→發(fā)現(xiàn)門戶,填寫服務(wù)器IP地址,選擇默認(rèn)端口,再單擊“高級(jí)”按鈕,在高級(jí)設(shè)置窗口輸入CHAP登錄信息,單擊確定按鈕。返回到iSCSI發(fā)起程序窗口,切換到目標(biāo),單擊“刷新”按鈕就可以看到iSCSI目標(biāo)名稱,此時(shí)iSCSI目標(biāo)狀態(tài)為不活動(dòng)。(3)依次單擊連接→高級(jí),添加CHAPusertotarget完成后,單擊“確定”按鈕。(4)打開Windows7計(jì)算機(jī)管理中的磁盤管理,對(duì)掛載上來的10GB磁盤進(jìn)行格式化后即可正常使用。任務(wù)實(shí)施4HDFS安裝配置和使用本任務(wù)在主機(jī)hadoop1、hadoop2、hadoop3節(jié)點(diǎn)上部署HDFS文件系統(tǒng),其中NameNode部署在hadoop1節(jié)點(diǎn),SecondaryNameNode部署在hadoop2節(jié)點(diǎn)上,DataNode部署在hadoop3節(jié)點(diǎn)上?;A(chǔ)環(huán)境如表6-1所示。節(jié)點(diǎn)號(hào)主機(jī)名Ip地址角色1hadoop192NameNode2hadoop293SecondaryNameNode3hadoop328DataNode任務(wù)實(shí)施4HDFS安裝配置和使用(1)分別修改三臺(tái)主機(jī)的主機(jī)名及主機(jī)的hosts文件,并確認(rèn)三臺(tái)機(jī)器之間的連通性。(2)清除各節(jié)點(diǎn)iptables規(guī)則,關(guān)閉firewalld。(3)配置java環(huán)境(同步完成hadoop1、2、3節(jié)點(diǎn))。(4)讓環(huán)境變量生效,測試JDK是否有效。(5)安裝hadoop環(huán)境。(6)完成hadoop安裝后,可以通過瀏覽器訪問hadoop對(duì)應(yīng)的服務(wù)。通過綁定host的方式訪問hadoop1:50070或者直接訪問92:50070/。(7)訪問YARN。網(wǎng)址為92:8088/。任務(wù)實(shí)施5MooseFS安裝配置和使用通過本任務(wù)了解MooseFS組件功能,并掌握MooseFS文件系統(tǒng)的安裝、配置和集群管理。在VMwareWorkstation中模擬4臺(tái)機(jī)器,主機(jī)名、角色、網(wǎng)絡(luò)配置等基礎(chǔ)環(huán)境要求情況如表6-2所示。主機(jī)名IPCPU內(nèi)存磁盤角色RHEL8-1282核4GB50GBmasterRHEL8-2292核4GB50GBmetaloggerRHEL8-31302核4GB50GBchunkerRHEL8-4131

2核4GB50GBclient任務(wù)實(shí)施5MooseFS安裝配置和使用(1)在任務(wù)開始前,請(qǐng)確認(rèn)各節(jié)點(diǎn)ip地址是否設(shè)置好,并檢查彼此之間的連通性。(2)修改hosts文件,以便通過主機(jī)名訪問。(步驟2、3、4、5在RHEL8-1、RHEL8-2、RHEL8-3、RHEL8-4均設(shè)置)(3)從MooseFS官網(wǎng)上下載gpgcheck文件,核驗(yàn)gpg簽名確保軟件下載使用的安全。(4)編輯MooseFS.repo文件,指向MooseFS官網(wǎng)3.0版本的yum源,并對(duì)其進(jìn)行g(shù)pg前面核驗(yàn)。保存后測試yum源是否有效。(5)在RHEL8-1、RHEL8-2、RHEL8-3各節(jié)點(diǎn)上依次關(guān)閉防火墻,設(shè)置SElinux,清空iptables規(guī)則。部署華為云軟件倉庫。上述步驟,也可以先完成RHEL8-1,再通過克隆另外三臺(tái)機(jī)器完成設(shè)置。(6)在RHEL8-1安裝Moosefs-master服務(wù),確認(rèn)配置文件情況。(7)在安裝默認(rèn)的文件目錄中找到mfsmaster啟動(dòng)文件,啟動(dòng)服務(wù)。(8)通過yum安裝MooseFScgiserver服務(wù)并啟動(dòng),后續(xù)就可以通過web瀏覽器查看集群狀態(tài)。(9)在RHEL8-2部署軟件倉庫(其他主機(jī)均需部署軟件倉庫,具體步驟可以參考RHEL8-1)。通過yum命令在RHEL8-2上安裝Moosefs-metalogger,修改配置文件指向master地址,最后啟動(dòng)服務(wù)。任務(wù)實(shí)施5MooseFS安裝配置和使用(10)在RHEL8-3中安裝Moosefs-chunkServer服務(wù),修改配置文件指向master集群地址,增加掛載點(diǎn)并啟動(dòng)該服務(wù),此服務(wù)為數(shù)據(jù)層保存位置。(11)在RHEL8-4中安裝Moosefs-client服務(wù),創(chuàng)建共享目錄。通過mfsmount將集群共享的目錄掛載到本地。完成moosefs分布式存儲(chǔ)掛載使用。(12)在瀏覽器中輸入http://28:9425,或者RHEL8-1:9425。將DNS設(shè)置成RHEL8-1。如圖6-56所示。(13)通過Web監(jiān)視器查看各服務(wù)器狀態(tài)。如圖6-57所示。主流的存儲(chǔ)架構(gòu)技術(shù)通過本課程,我們學(xué)習(xí)了內(nèi)容總結(jié)Openfiler搭建NFS和iSCSI存儲(chǔ)分布式存儲(chǔ)技術(shù)安裝配置和使用虛擬化與云計(jì)算應(yīng)用實(shí)踐

項(xiàng)目化教程

項(xiàng)目7Docker技術(shù)

學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)了解Docker技術(shù)的基本原理;了解Dockerfile的語法規(guī)則及通過Dockerfile制作鏡像的方法;了解鏡像的發(fā)布。技能目標(biāo)掌握Docker的安裝部署;掌握Docker基本命令的使用;掌握Dockerfile的編寫;掌握鏡像的發(fā)布。通過本課程的學(xué)習(xí)你將可以項(xiàng)目引導(dǎo)虛擬網(wǎng)絡(luò)配置和管理Docker是一個(gè)開源的應(yīng)用容器引擎,用于開發(fā)、發(fā)布和運(yùn)行應(yīng)用程序的開放平臺(tái)。Docker讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中。然后測試通過的容器可以批量地發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。通過Docker,可以像管理應(yīng)用程序一樣管理基礎(chǔ)架構(gòu)。Docker為開發(fā)者提供了快速發(fā)布、測試和部署代碼的方法。本項(xiàng)目主要完成Docker部署及構(gòu)建、發(fā)布鏡像。Docker架構(gòu)知識(shí)準(zhǔn)備任務(wù)實(shí)施14Docker安裝部署Docker命令行操作123Docker數(shù)據(jù)管理Dockerfile構(gòu)建web鏡像23Docker數(shù)據(jù)管理Dockerfile5Docker鏡像發(fā)布1Docker架構(gòu)Docker最初是基于dotCloud公司多年云服務(wù)技術(shù)的一次革新,于2013年3月以Apache2.0授權(quán)協(xié)議開源。Docker使用Go語言進(jìn)行開發(fā)實(shí)現(xiàn),從1.11開始,進(jìn)一步演進(jìn)為使用runC和containerd。Docker使用客戶端-服務(wù)器架構(gòu)。架構(gòu)圖如圖7-1所示。圖7-1Docker架構(gòu)圖1Docker架構(gòu)1.Docker客戶端(Client)2.Docker守護(hù)進(jìn)程(Dockerdaemon)3.Container容器4.Image鏡像5.鏡像倉庫(Registry)1Docker架構(gòu)Docker命令功能systemctlstartdocker啟動(dòng)Docker服務(wù)systemctlstopdocker停止Docker服務(wù)systemctlenabledocker開機(jī)啟動(dòng)Dockersystemctldisabledocker禁用開機(jī)啟動(dòng)Dockerdockersearch鏡像名稱搜索指定名稱的鏡像dockerimages查看本地鏡像列表dockerpull鏡像名稱下載指定名稱的鏡像dockerrmi鏡像名稱刪除本地指定名稱的鏡像dockerbuild-t鏡像名稱context使用Dockerfile構(gòu)建鏡像context:構(gòu)建的上下文dockerrun鏡像名稱通過鏡像啟動(dòng)一個(gè)容器dockerrun-d鏡像名稱以后臺(tái)運(yùn)行的方式通過鏡像啟動(dòng)一個(gè)容器docker--nametest鏡像名稱啟動(dòng)容器,并將容器命名為testdockerrun-i-t鏡像名稱/bin/bash通過鏡像啟動(dòng)一個(gè)容器,然后以命令行模式進(jìn)入該容器-i:交互式操作-t:終端/bin/bash:放在鏡像名后的是命令,如/bin/bash,/bin/sh等dockerps-a查看所有容器狀態(tài)dockerstop<容器ID>停止容器dockerrm<容器ID>刪除容器,刪除容器需要先停止容器dockerexec-it<容器ID>/bin/bash連接容器,以命令行模式進(jìn)入容器表7-1Docker基本命令2Docker數(shù)據(jù)管理1.?dāng)?shù)據(jù)卷(Volumes):數(shù)據(jù)卷存儲(chǔ)在宿主機(jī)的某個(gè)目錄下(一般為/var/lib/docker/volumes/),由Docker進(jìn)行管理。2.掛載主機(jī)目錄(Bindmounts):當(dāng)使用掛載主機(jī)目錄時(shí),宿主機(jī)上的文件或目錄會(huì)掛載到容器中,文件或目錄為宿主機(jī)上該目錄的絕對(duì)路徑。3DockerfileDockerfile是一個(gè)基于文本的指令腳本,用于創(chuàng)建容器映像。Docker通過讀取Dockerfile中的指令自動(dòng)構(gòu)建鏡像。Dockerfile常用指令有FROM、COPY、ADD、CMD、RUN、WORKDIR、ENV等。項(xiàng)目實(shí)施任務(wù)7-1Docker安裝部署任務(wù)7-2Docker命令行操作任務(wù)7-3Docker數(shù)據(jù)管理任務(wù)7-4Dockerfile構(gòu)建web鏡像任務(wù)7-5Docker鏡像發(fā)布需要完成的任務(wù):項(xiàng)目實(shí)施包括5個(gè)具體任務(wù)。本項(xiàng)目包括Docker安裝部署、

Docker命令行操作、

Docker數(shù)據(jù)管理、

Dockerfile構(gòu)建web鏡像、

Docker鏡像發(fā)布。

Project任務(wù)實(shí)施1Docker安裝部署本任務(wù)使用RHEL8進(jìn)行Docker的安裝和配置1,使用RHEL8本地鏡像配置BaseOS和AppStream存儲(chǔ)庫(1)掛載鏡像到本地操作系統(tǒng)。[root@RHEL8~]#mkdir/mnt/iso[root@RHEL8~]#mount-oro/dev/sr0/mnt/iso[root@RHEL8~]#ls/mnt/iso/BaseOS///列出如下內(nèi)容說明倉庫已準(zhǔn)備好Packagesrepodata[root@RHEL8~]#ls/mnt//iso/AppStream///列出如下內(nèi)容說明倉庫已準(zhǔn)備好Packagesrepodata(2)修改配置文件指定本地存儲(chǔ)庫。[root@RHEL8~]#cd/etc/yum.repos.d[root@RHEL8yum.repos.d]#vimlocal.repo[BaseOS]name=BaseOSbaseurl=file:///mnt/iso/BaseOSenabled=1gpgcheck=0[AppStream]name=AppStreambaseurl=file:///mnt/iso/AppStreamenabled=1gpgcheck=0任務(wù)實(shí)施1Docker安裝部署2.配置docker-ceyum源倉庫Docker的安裝需要從docker-ceyum源倉庫進(jìn)行軟件包的下載,這里采用阿里云的源倉庫鏡像地址。[root@rhel8~]#yumconfig-manager--add-repo\/docker-ce/linux/centos/docker-ce.repoUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.添加倉庫自:/docker-ce/linux/centos/docker-ce.repo3.生成yum緩存配置好兩個(gè)倉庫后,生成新的緩存。[root@rhel8~]#yummakecacheUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.DockerCEStable-x86_6431kB/s|3.5kB00:00AppStream3.1MB/s|3.2kB00:00BaseOS2.7MB/s|2.7kB00:00元數(shù)據(jù)緩存已建立。如果未出現(xiàn)以上倉庫列表,說明倉庫并未配置成功,請(qǐng)檢查yum源倉庫的配置。任務(wù)實(shí)施1Docker安裝部署4.清除舊的docker相關(guān)包和podman包自RHEL8起,RedHat用CRI-O/Podman取代了DockerDaemon,Podman是一種開源的Linux原生工具,根據(jù)開放容器倡議(OpenContainerInitiative,OCI)標(biāo)準(zhǔn)開發(fā)、管理和運(yùn)行容器和Pod,是RHEL8和CentOS8默認(rèn)的容器引擎。為更好的完成Docker任務(wù),避免軟件沖突,需要先卸載Podman。[root@rhel8~]#yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine\podman\runc5.安裝docker[root@rhel8~]#yuminstalldocker-cedocker-ce-clicontainerd.io--nobest6.啟動(dòng)Docker[root@rhel8~]#systemctlstartdocker[root@rhel8~]#systemctlstatusdocker●docker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/lib/systemd/system/docker.service;disabled;vendorpreset:disabled)Active:active(running)sinceSun2022-05-2222:31:02EDT;9sagoDocs:MainPID:56842(dockerd)Tasks:8Memory:125.6MCGroup:/system.slice/docker.service└─56842/usr/bin/dockerd-Hfd://--containerd=/run/containerd/containerd.sock任務(wù)實(shí)施2Docker命令行操作在本任務(wù)中,通過運(yùn)行幾個(gè)容器來掌握Docker命令行的操作。1.運(yùn)行hello-world鏡像(1)搜索hello-world鏡像。[root@rhel8~]#dockersearchhelloNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDhello-worldHelloWorld!(anexample…1725[OK]hello-seattleHellofromDockerCon2016(Seattle)!10[OK]ibmcom/helloworldAsampleusedbyIBMCloudCodeEngine2(2)下載hello-world鏡像。[root@rhel8~]#dockerpullhello-world(3)查看下載到的鏡像。[root@rhel8~]#dockerimages(4)運(yùn)行hello-world。[root@rhel8~]#dockerrunhello-worldHellofromDocker!Thismessageshowsthatyourinstallationappearstobeworkingcorrectly.……啟動(dòng)docker容器時(shí)可能會(huì)遇到以下報(bào)錯(cuò)。[root@rhel8~]#dockerrunhello-worlddocker:Errorresponsefromdaemon:OCIruntimecreatefailed:unabletoretrieveOCIruntimeerror(open/run/containerd/io.containerd.runtime.v1.linux/moby/e4563631d7ed2be8d2e4b0520132b825543fe52deb1ebf18e9dd71747f9ca7eb/log.json:nosuchfileordirectory):runcdidnotterminatesuccessfully:exitstatus127:unknown.出現(xiàn)Error是因?yàn)槿鄙僖蕾嚢?,可通過安裝libseccomp-devel安裝包解決。由于RHEL8的本地光盤鏡像中不存在libseccomp-devel安裝包,在這里配置了華為云開源yum源倉庫后再安裝libseccomp-devel。[root@rhel8~]#curl-o/etc/yum.repos.d/CentOS-Base.repo\/repository/conf/CentOS-8-reg.repo[root@rhel8~]#yuminstalllibseccomp-devel(5)查看docker中所有容器。[root@rhel8~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf407938a49a3hello-world"/hello"2minutesagoExited(0)2minutesagocharming_mclean任務(wù)實(shí)施2Docker命令行操作2.運(yùn)行2048應(yīng)用2048是一個(gè)流行的益智游戲,目的是通過組合匹配的滑塊到數(shù)字2048。本任務(wù)通過運(yùn)行2048應(yīng)用,熟悉容器使用。(1)下載2048游戲鏡像。[root@rhel8~]#dockerpullalexwhen/docker-2048(2)后臺(tái)運(yùn)行2048游戲鏡像。[root@rhel8~]#dockerrun-d-p80:80alexwhen/docker-2048其中-p80:80表示映射容器服務(wù)的80端口到宿主機(jī)的80端口,外部主機(jī)可以直接通過宿主機(jī)ip:80訪問到該服務(wù)。冒號(hào)前為宿主機(jī)的端口,冒號(hào)后為運(yùn)行的容器的端口。如果遇到提示80端口已在使用,可切換其他未使用的端口,如切換綁定端口為81。[root@rhel8~]#dockerrun-d-p81:80alexwhen/docker-2048(3)測試及驗(yàn)證容器功能。打開瀏覽器,訪問http://localhost:81。2048應(yīng)用測試結(jié)果圖如圖7-3所示。圖7-32048應(yīng)用測試結(jié)果圖任務(wù)實(shí)施2Docker命令行操作(4)進(jìn)入容器。在使用-d參數(shù)運(yùn)行容器時(shí),容器會(huì)進(jìn)入后臺(tái)啟動(dòng)。如果想要進(jìn)入容器,可以通過dockerexec命令。先通過dockerps查看要進(jìn)入的容器的ID。[root@rhel8~]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES9fe02f240cdealexwhen/docker-2048"nginx-g'daemonof…"2weeksagoUp2weeks:81->80/tcp,:::81->80/tcpzealous_pasteur使用dockerexec進(jìn)入對(duì)應(yīng)的容器,并在容器中查看nginx的日志文件,查看完成后,退出容器。[root@rhel8~]#dockerexec-it9fe02f240cde/bin/sh/#/#tail-3/var/log/nginx/access.log……Gecko/20100101Firefox/60.0"/#exit[root@rhel8~]#(5)停止容器。使用dockerstop可停止指定的容器。[root@rhel8~]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES9fe02f240cdealexwhen/docker-2048"nginx-g'daemonof…"2weeksagoUp2weeks:81->80/tcp,:::81->80/tcpzealous_pasteur[root@rhel8~]#dockerstop9fe02f240cde(6)刪除容器。[root@rhel8~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES9fe02f240cdealexwhen/docker-2048"nginx-g'daemonof…"2weeksagoExited(0)2minutesagozealous_pasteurf407938a49a3hello-world"/hello"2weeksagoExited(0)2weeksagocharming_mclean使用dockerps-a可查看到當(dāng)前所有的容器,使用dockerrm可刪除指定CONTAINERID的已停止運(yùn)行容器。[root@rhel8~]#dockerrmf407938a49a3[root@rhel8~]#dockerrm9fe02f240cde任務(wù)實(shí)施2Docker命令行操作(7)刪除鏡像。[root@rhel8~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEhello-worldlatestfeb5d9fea6a58monthsago13.3kBalexwhen/docker-2048latest7929bcd70e476yearsago8.02MB[root@rhel8~]#dockerrmihello-world[root@rhel8~]#dockerrmialexwhen/docker-2048[root@rhel8~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZE任務(wù)實(shí)施2Docker命令行操作3

運(yùn)行MySQL應(yīng)用使用Docker容器運(yùn)行MySQL應(yīng)用是一種廣泛使用的機(jī)制。事實(shí)上,MySQL是與Docker容器一起使用的最流行的數(shù)據(jù)庫之一。使用Docker在容器中運(yùn)行數(shù)據(jù)庫,就像它是遠(yuǎn)程服務(wù)器一樣,可以測試應(yīng)用程序如何與其交互。(1)下載MySQL鏡像。[root@rhel8~]#dockerpullmysql(2)后臺(tái)運(yùn)行MySQL鏡像。[root@rhel8~]#dockerrun-itd--namemysql-test-p3306:3306-e\MYSQL_ROOT_PASSWORD=123456mysql(3)查看容器狀態(tài)。[root@rhel8~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES409ebe5ea38fmysql"docker-entrypoint.s…"2hoursagoUp2hours:3306-3306/tcp,:::3306->3306/tcp,33060/tcpmysql-test(4)進(jìn)入MySQL容器,并訪問MySQL。[root@rhel8~]#dockerexec-itmysql-test/bin/bashroot@409ebe5ea38f:/#mysql-hlocalhost-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis11Serverversion:8.0.29MySQLCommunityServer-GPL......mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||mysql||performance_schema||sys||test|+--------------------+5rowsinset(0.74sec)mysql>任務(wù)實(shí)施3Docker數(shù)據(jù)管理本任務(wù)通過數(shù)據(jù)卷和數(shù)據(jù)卷容器兩種方式實(shí)現(xiàn)Docker容器中數(shù)據(jù)管理。1.在容器內(nèi)創(chuàng)建一個(gè)數(shù)據(jù)卷(1)創(chuàng)建一個(gè)數(shù)據(jù)卷。[root@rhel8~]#dockervolumecreateweb-volweb-vol(2)查看所有數(shù)據(jù)卷。[root@rhel8~]#dockervolumelsDRIVERVOLUMENAMElocalweb-vol(3)查看指定數(shù)據(jù)卷信息。[root@rhel8~]#dockervolumeinspectweb-vol數(shù)據(jù)卷在宿主機(jī)的位置通過mountpoint參數(shù)可以得到。[root@rhel8~]#dockerrun-d–name=web-vol-p85:80\--mountsource=web-vol,target=/usr/share/nginx/htmlnginx:alpineUnabletofindimage'nginx:alpine'locallyalpine:Pullingfromlibrary/nginxdf9b9388f04a:Alreadyexistsa285f0f83eed:Pullcomplete[root@rhel8~]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES6f191ddd324anginx:alpine"/docker-entrypoint.…"12secondsagoUp10seconds:85->80/tcp,:::85->80/tcpweb-vol任務(wù)實(shí)施3Docker數(shù)據(jù)管理(5)查看容器掛載的數(shù)據(jù)卷。[root@rhel8~]#dockerinspect6f191ddd324a[{…"Mounts":[{"Type":"volume","Source":"web-vol","Target":"/usr/share/nginx/html"}],…}]數(shù)據(jù)卷在Mounts參數(shù)中。(6)查看數(shù)據(jù)卷的內(nèi)容。[root@rhel8~]#ll/var/lib/docker/volumes/web-vol/_data總用量8-rw-r--r--.1rootroot4971月2510:2650x.html-rw-r--r--.1rootroot6151月2510:26index.html該數(shù)據(jù)卷的內(nèi)容不會(huì)隨著容器的停止或刪除而自動(dòng)被刪除。任務(wù)實(shí)施3Docker數(shù)據(jù)管理2.掛載主機(jī)目錄作為數(shù)據(jù)卷在Linux中,MySQL默認(rèn)的數(shù)據(jù)文檔存儲(chǔ)目錄為/var/lib/mysql。為了防止MySQL鏡像或容器刪除后,MySQL數(shù)據(jù)丟失,我們可以將容器內(nèi)的/var/lib/mysql的數(shù)據(jù)綁定在宿主機(jī)目錄/home/mysql/data。即使用-v方式掛載宿主機(jī)/home/mysql/data目錄到容器的/var/lib/mysql目錄。使用-v掛載時(shí),冒號(hào)":"前面的目錄是宿主機(jī)目錄,后面的目錄是容器內(nèi)目錄。[root@rhel8~]#dockerrun-itd--namemysql-vol\-v/home/mysql/data:/var/lib/mysql\-p3307:3306\-eMYSQL_ROOT_PASSWORD=123456mysql這樣MySQL的數(shù)據(jù)文檔可以在/home/mysql/data中找到并存儲(chǔ)起來。使用-v參數(shù)時(shí)如果本地目錄不存在,Docker會(huì)自動(dòng)創(chuàng)建本地目錄。查看/home/mysql/data中的文件。[root@rhel8~]#ll/home/mysql/data/總用量198056-rw-r-----.1systemd-coredumpinput13825月2703:37a7b60a3ea9b8.err-rw-r-----.1systemd-coredumpinput565月2703:36f-rw-r-----.1systemd-coredumpinput31169225月2703:37binlog.000001…查看容器使用的數(shù)據(jù)卷,數(shù)據(jù)卷在Mounts參數(shù)中。[root@rhel8~]#dockerinspectmysql-vol[{

...

"Mounts":[{"Type":"bind","Source":"/home/mysql/data","Destination":"/var/lib/mysql","Mode":"","RW":true,"Propagation":"rprivate"}],...}]任務(wù)實(shí)施4Dockerfile構(gòu)建web鏡像1.準(zhǔn)備靜態(tài)網(wǎng)頁資源編寫一個(gè)簡單的html頁面,頁面顯示hello,docker。[root@rhel8~]#mkdir/webdata[root@rhel8~]#cd/webdata[root@rhel8webdata]#vimindex.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>dockerweb</title></head><body><h1>hello,docker</h1></body></html>2.配置Dockerfile文件在/webdata/下新建Dockerfile文件。[root@rhel8webdata]#vimDockerfileFROMnginxCOPY./index.html/usr/share/nginx/html/其中FROM指令告訴Docker使用哪個(gè)鏡像作為基礎(chǔ),這里以nginx鏡像作為基礎(chǔ);COPY指令是用于指定把哪些文件復(fù)制到/usr/share/nginx/html/,在nginx鏡像中配置的前端資源訪問路徑為/usr/share/nginx/html/,所以將我們的前端資源文件復(fù)制到該路徑即可。3.使用dockerbuild命令來生成鏡像[root@rhel8webdata]#dockerbuild-twebapp:v1.SendingbuildcontexttoDockerdaemon3.072kBStep1/2:FROMnginxlatest:Pullingfromlibrary/nginx214ca5fb9032:Pullcomplete任務(wù)實(shí)施4Dockerfile構(gòu)建web鏡像4.查看生成的鏡像[root@rhel8webdata]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEwebappv1f4d0975f50c440secondsago142MB5.運(yùn)行生成的鏡像[root@rhel8webdata]#dockerrun-d-p82:80webapp:v16.查看docker運(yùn)行情況[root@rhel8webdata]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESaa58f3a306dbwebapp:v1"/docker-entrypoint.…"AboutaminuteagoUpAboutaminute:82->80/tcpbusy_bose7.驗(yàn)證,網(wǎng)頁訪問http://localhost:82。Web應(yīng)用測試結(jié)果如圖7-4所示。圖7-4Web應(yīng)用測試結(jié)果圖任務(wù)實(shí)施5Docker鏡像發(fā)布本任務(wù)將構(gòu)建好的一個(gè)webapp上傳到dockerhub上。1.注冊dockerhub賬號(hào)要上傳到Dockerhub,需要先在Dockerhub上注冊一個(gè)賬號(hào),所示。2.在Dockerhub上新建倉庫在注冊賬號(hào)后登錄Dockerhub,如圖7-6所示。創(chuàng)建一個(gè)名為webapp的倉庫,用來上傳鏡像,如圖7-7所示。圖7-5dockerhub注冊頁面任務(wù)實(shí)施5Docker鏡像發(fā)布3.給鏡像打標(biāo)簽在推送鏡像前,需要按照鏡像推送的規(guī)范格式,使用dockerimagetag給鏡像打標(biāo)簽,將鏡像打標(biāo)簽成倉庫名/鏡像名:鏡像版本的格式。先查看當(dāng)前鏡像列表。[root@rhel8webdata]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEwebappv1f4d0975f50c440secondsago142MB使用dockerimagetag給鏡像打標(biāo)簽。[root@rhel8webdata]#dockerimagetagwebapp:v1userfordockerhub/webapp:latest[root@rhel8webdata]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEuserfordockerhub/webapplatestf4d0975f50c422minutesago142MBwebappv1f4d0975f50c422minutesago142MB4.登錄dockerhub賬號(hào)使用注冊的賬號(hào)在RHEL8上登錄dockerhub。[root@rhel8webdata]#dockerloginLoginwithyourDockerIDtopushandpullimagesfromDockerHub.Ifyoudon'thaveaDockerID,headovertotocreateone.Username:userfordockerhubPassword:WARNING!Yourpasswordwillbestoredunencryptedin/root/.docker/config.json.Configureacredentialhelpertoremovethiswarning.See/engine/reference/commandline/login/#credentials-storeLoginSucceeded5.推送到遠(yuǎn)程倉庫登錄成功后,使用dockerpush將打標(biāo)簽的鏡像推送到dockerhub。[root@rhel8webdata]#dockerpushuserfordockerhub/webapp:latestThepushreferstorepository[docker.io/userfordockerhub/webapp]72bb1c18ab0d:Pusheda059c9abe376:Mountedfromlibrary/nginx任務(wù)實(shí)施5Docker鏡像發(fā)布6.在dockerhub上查看下載推送的鏡像推送成功后,可以在dockerhub的對(duì)應(yīng)倉庫中查看到推送的鏡像,其他使用者就可以在dockerhub上下載該鏡像使用,如圖7-8所示。Docker安裝部署通過本課程,我們學(xué)習(xí)了內(nèi)容總結(jié)Docker數(shù)據(jù)管理Dockerfile構(gòu)建鏡像和發(fā)布虛擬化與云計(jì)算應(yīng)用實(shí)踐

項(xiàng)目化教程

項(xiàng)目8騰訊云服務(wù)

學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)掌握騰訊云體系架構(gòu)、云產(chǎn)品服務(wù);掌握云API概念。技能目標(biāo)掌握云服務(wù)器創(chuàng)建和配置管理;掌握云數(shù)據(jù)庫、云存儲(chǔ)和云網(wǎng)絡(luò)配置;掌握云服務(wù)器的API調(diào)用。通過本課程的學(xué)習(xí)你將可以項(xiàng)目引導(dǎo)騰訊云服務(wù)與傳統(tǒng)的私有數(shù)據(jù)中心相比,云服務(wù)提供商的公有云成本相對(duì)低廉,被認(rèn)為是云計(jì)算的主要形態(tài)?!肮小狈从沉诉@類云服務(wù)不屬于用戶所有,是向公眾提供計(jì)算資源的服務(wù)。應(yīng)用程序和存儲(chǔ)等資源由服務(wù)提供商提供,這些資源部署在服務(wù)提供商的內(nèi)部。公有云服務(wù)提供商包括亞馬遜、谷歌和微軟,以及中國的阿里云、百度云和騰訊云等。公有云的優(yōu)勢在于成本低、可擴(kuò)展性強(qiáng)。其缺點(diǎn)是缺乏對(duì)云資源的控制、機(jī)密數(shù)據(jù)的安全性、網(wǎng)絡(luò)性能和匹配。通過公有云部署云服務(wù)器并通過騰訊云API,只需少量的代碼即可快速操作云產(chǎn)品;在熟練的情況下,使用云API完成一些頻繁調(diào)用的功能可以極大提高效率,從而快速實(shí)現(xiàn)類似操作,創(chuàng)造更多價(jià)值。用戶還可以按照實(shí)際需求自由組合云API的各個(gè)功能,實(shí)現(xiàn)更高級(jí)的功能及定制化開發(fā)。騰訊云概況知識(shí)準(zhǔn)備任務(wù)實(shí)施14云服務(wù)器的創(chuàng)建和配置云數(shù)據(jù)庫的創(chuàng)建和配置123云存儲(chǔ)的配置與管理云網(wǎng)絡(luò)的配置與管理423騰訊云產(chǎn)品服務(wù)云API概念常用的API特性5云服務(wù)器的API調(diào)用1云計(jì)算概述美國國家標(biāo)準(zhǔn)與技術(shù)研究院(CommerceDepartment’sNationalInstituteofStandardsandTechnology,NIST)對(duì)云計(jì)算(CloudComputing)的定義,是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問,進(jìn)入可配置的計(jì)算資源共享池(資源包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用軟件、服務(wù)),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務(wù)供應(yīng)商進(jìn)行很少的交互。云計(jì)算的基本特征①按需自服務(wù)。用戶可根據(jù)自己的需要而獲得計(jì)算資源:如服務(wù)器、存儲(chǔ)等用戶不需要與資源提供者進(jìn)行人的交互。②廣泛的網(wǎng)絡(luò)訪問。用戶可以通過網(wǎng)絡(luò)訪問云服務(wù):IP網(wǎng)絡(luò)用戶可以在任何地點(diǎn)以任何方式來訪問云服務(wù)。③資源共享。提供者的計(jì)算資源形成一個(gè)資源池,采用多租賃模式為多用戶提供服務(wù)。計(jì)算資源可以根據(jù)用戶的需求,動(dòng)態(tài)進(jìn)行分配和重新分配不同的物理和虛擬資源。④快速彈性。容量可以在某些情況下快速的擴(kuò)展或者快速的收縮對(duì)用戶而言,可用的供應(yīng)容量一般無限制,同時(shí)可以在任何時(shí)間購買到任何數(shù)量。⑤服務(wù)可度量。云系統(tǒng)可以在某些抽象的層次上將用于提供服務(wù)的計(jì)算能力進(jìn)行自動(dòng)的控制和優(yōu)化資源的使用資源的使用可以進(jìn)行監(jiān)控、控制和報(bào)告。云計(jì)算服務(wù)類型①基礎(chǔ)架構(gòu)即服務(wù)(InfrastructureasaService,縮寫IaaS)。這種云計(jì)算最大的特征在于,它并不像傳統(tǒng)的服務(wù)器租賃商一樣出租具體的服務(wù)器實(shí)體,它出租的是服務(wù)器的計(jì)算能力和存儲(chǔ)能力。②平臺(tái)即服務(wù)(PlatformasaService,縮寫PaaS)。與軟件即服務(wù)不同,平臺(tái)即服務(wù)是面向開發(fā)者的云計(jì)算。這種云計(jì)算最大的特征是它自帶開發(fā)環(huán)境,并向開發(fā)者提供開發(fā)工具包。③軟件即服務(wù)(SoftwareasaService,縮寫SaaS)。這種云計(jì)算最大的特征就是消費(fèi)者并不購買任何實(shí)體的產(chǎn)品,而是購買具有與實(shí)體產(chǎn)品同等功能的服務(wù)。圖2-66三種類型的關(guān)系云計(jì)算的部署模式①公有云。公有云(PublicClouds),“公有”反映了這類云服務(wù)不屬于用戶所有,而公有云是向公眾提供計(jì)算資源的服務(wù)。②私有云。私有云(PrivateClouds)是傳統(tǒng)企業(yè)數(shù)據(jù)中心的延伸和優(yōu)化,它可以為各種功能提供存儲(chǔ)容量和處理能力。③混合云?;旌显疲╤ybridcloud)在混合云模式下,云平臺(tái)由兩種不同的模型(私有或公共)云平臺(tái)組成。這些平臺(tái)仍然是獨(dú)立的實(shí)體,但通過標(biāo)準(zhǔn)化或?qū)S屑夹g(shù)將數(shù)據(jù)和應(yīng)用程序相互遷移(例如,不同云平臺(tái)之間的平衡)。圖2-67云計(jì)算部署模式2云服務(wù)器產(chǎn)品圖2-68云服務(wù)器產(chǎn)品類型云服務(wù)器產(chǎn)品類型云服務(wù)器CVM:騰訊云云服務(wù)器(CloudVirtualMachine,CVM)在云中提供可擴(kuò)展的計(jì)算服務(wù),避免了使用傳統(tǒng)服務(wù)器時(shí)需要預(yù)估資源用量及前期投入的情況。輕量應(yīng)用服務(wù)器:輕量應(yīng)用服務(wù)器(Lighthouse)是新一代面向中小企業(yè)和開發(fā)者的云服務(wù)器產(chǎn)品,具備輕運(yùn)維、開箱即用的特點(diǎn),適用于小型網(wǎng)站、博客、論壇、電商以及云端開發(fā)測試和學(xué)習(xí)環(huán)境等輕量級(jí)業(yè)務(wù)場景。GPU云服務(wù)器:GPU云服務(wù)器(GPUCloudComputing)是基于GPU的快速、穩(wěn)定、彈性的計(jì)算服務(wù),主要應(yīng)用于深度學(xué)習(xí)訓(xùn)練\推理、圖形圖像處理以及科學(xué)計(jì)算等場景。FPGA云服務(wù)器:FPGA云服務(wù)器(FPGACloudComputing)是基于FPGA(FieldProgrammableGateArray)現(xiàn)場可編程陣列的計(jì)算服務(wù),支持快速部署FPGA計(jì)算實(shí)例。專用宿主機(jī)CDH:專用宿主機(jī)(CvmDedicatedHost)可以以獨(dú)享宿主機(jī)資源方式購買、創(chuàng)建云主機(jī),以滿足資源獨(dú)享、安全、合規(guī)需求;購買專用宿主機(jī)后,可在其上靈活創(chuàng)建、管理多種自定義規(guī)格的獨(dú)享型云主機(jī)。3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論