版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Docker容器技術(shù)與應用
Docker概述項目1項目背景在數(shù)字化轉(zhuǎn)型的大潮中,企業(yè)對于高效、靈活且可擴展的IT架構(gòu)需求日益增長。近年來,隨著云計算技術(shù)的普及與深入應用,企業(yè)數(shù)據(jù)中心正逐步從傳統(tǒng)架構(gòu)向云原生架構(gòu)轉(zhuǎn)型。云原生架構(gòu)以其彈性伸縮、資源高效利用、服務自治等特性,成為支撐現(xiàn)代企業(yè)業(yè)務快速迭代和創(chuàng)新的關(guān)鍵基礎(chǔ)設施。在這一轉(zhuǎn)型過程中,企業(yè)面臨的一個核心挑戰(zhàn)是如何確保各類應用在不同基礎(chǔ)環(huán)境間的無縫遷移與穩(wěn)定運行。傳統(tǒng)虛擬機雖然在一定程度上解決了資源隔離與復用的問題,但其笨重的特性、啟動速度慢以及資源消耗大等問題逐漸顯現(xiàn),難以滿足現(xiàn)代應用對敏捷性和性能的高要求。Docker概述項目1Docker作為一款時下非常流行的平臺即服務(Pass)的開源產(chǎn)品,由于其使用容器技術(shù)來部署應用程序,使得開發(fā)者能夠以統(tǒng)一的、可移植的方式構(gòu)建、運行和分發(fā)應用程序,因此在云計算領(lǐng)域的應用越來越廣泛。本項目通過兩個任務介紹容器技術(shù)的發(fā)展、概念及特點,以及在RHEL8.1和Windows10操作系統(tǒng)環(huán)境下安裝Docker的詳細步驟。知識目標了解容器技術(shù)的發(fā)展歷程。掌握Docker的基本概念和特點。能力目標熟練掌握百度、Google等搜索工具的使用方法。掌握在VmwareWorkstation中安裝RHEL8的步驟。素質(zhì)目標培養(yǎng)團隊協(xié)作精神、樹立誠信意識。鍛煉溝通交流的能力。項目一:Docker概述目錄任務1.1、認識Dokcer技術(shù)任務1.2、熟悉Dokcer的安裝方法某公司因業(yè)務擴展,在應用的開發(fā)和部署過程中,遇到了軟件更新和發(fā)布低效、環(huán)境一致性難以保證、遷移成本太高等問題。為提升從應用開發(fā)到部署的整體效率,經(jīng)研究公司認識到Docker這一開源應用容器引擎在推動持續(xù)集成方面具有顯著優(yōu)勢。鑒于此,公司決定采納Docker容器技術(shù),旨在構(gòu)建一個高效、統(tǒng)一的研發(fā)運維持續(xù)集成環(huán)境。于是,指派工程師小王深入調(diào)研Docker技術(shù),以推動該項目的實施。任務1.1認識Docker技術(shù)任務要求1.11.1.1Docker的發(fā)展歷程
什么是云平臺?為什么需要云平臺?云:通俗的理解就是遠程計算機,并且是一組一堆,這些遠程計算機協(xié)同工作構(gòu)建出一個平臺,對用戶提供服務。計算:這是一個概念很大的名詞,可認為是對業(yè)務數(shù)據(jù)進行計算分析的算力,不過通俗意義上,計算是指構(gòu)建業(yè)務系統(tǒng)的各種需求。平臺:將云(遠程硬件資源)和計算(遠程軟件資源)組合在一起,就形成了一個平臺,對用戶提供各種各樣的服務。
因此,云平臺有一個相對概念,那就是本地。
我們可以這樣理解:云平臺就是一個云上的平臺,為用戶提供各種各樣的遠程服務。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
任務1.1認識Docker技術(shù)相關(guān)知識1.1模擬云平臺:人力資源中心提供的是服務和資源,客戶只需要按量購買即可??蛻羧绻皇褂萌肆Y源中心,就需要自己招聘相應的員工,簽訂勞務合同,讓自己的員工去為自己服務。但是,如果需求結(jié)束了,員工又不能隨意辭退,那么這些員工就相當于資源閑置了。而人力資源中心就是提供了資源供客戶使用,按需求按用量付費即可,用完即停止,對客戶來說資源沒有閑置。1.1.1Docker的發(fā)展歷程
為什么用云平臺?環(huán)境統(tǒng)一按需付費即開即用穩(wěn)定性強……
國內(nèi)常見云平臺:
阿里云、百度云、騰訊云、華為云、青云……
國外常見云平臺:
亞馬遜AWS、微軟Azure……任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
公有云:購買云服務商提供的公共服務器。
公有云是最常見的云計算部署類型。公有云資源(例如服務器和存儲空間)由第三方云服務提供商擁有和運營,這些資源通過Internet提供。在公有云中,所有硬件、軟件和其他支持性基礎(chǔ)結(jié)構(gòu)均為云提供商所擁有和管理。MicrosoftAzure是公有云的一個示例。
在公有云中,你與其他組織或云“租戶”共享相同的硬件、存儲和網(wǎng)絡設備,并且你可以使用Web瀏覽器訪問服務和管理帳戶。公有云部署通常用于提供基于Web的電子郵件、網(wǎng)上辦公應用、存儲以及測試和開發(fā)環(huán)境。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
公有云優(yōu)勢:成本更低:無需購買硬件或軟件,僅對使用的服務付費。無需維護:維護由服務提供商提供。近乎無限制的縮放性:提供按需資源,可滿足業(yè)務需求。高可靠性:具備眾多服務器,確保免受故障影響。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
私有云:自己搭建云平臺,或者購買。私有云由專供一個企業(yè)或組織使用的云計算資源構(gòu)成。私有云可在物理上位于組織的現(xiàn)場數(shù)據(jù)中心,也可由第三方服務提供商托管。但是,在私有云中,服務和基礎(chǔ)結(jié)構(gòu)始終在私有網(wǎng)絡上進行維護,硬件和軟件專供組織使用。這樣,私有云可使組織更加方便地自定義資源,從而滿足特定的IT需求。私有云的使用對象通常為政府機構(gòu)、金融機構(gòu)以及其他具備業(yè)務關(guān)鍵性運營且希望對環(huán)境擁有更大控制權(quán)的中型到大型組織。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程私有云優(yōu)勢:靈活性更強:組織可自定義云環(huán)境以滿足特定業(yè)務需求。控制力更強:資源不與其他組織共享,因此能獲得更高的控制力以及更高的隱私級別??缮炜s性更強:與本地基礎(chǔ)結(jié)構(gòu)相比,私有云通常具有更強的可伸縮性。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
信息技術(shù)的飛速發(fā)展,促使人類進入云計算時代,云計算時代下孕育出眾多的云計算平臺。但眾多的云平臺之間標準規(guī)范不統(tǒng)一,每個云平臺都有各自獨立的資源管理策略、網(wǎng)絡映射策略和內(nèi)部依賴關(guān)系,導致各個平臺無法做到相互兼容、相互連接。同時,應用的規(guī)模愈發(fā)龐大、邏輯愈發(fā)復雜,任何一款產(chǎn)品都無法順利地從一個云平臺“遷移”到另外一個云平臺。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.1Docker的發(fā)展歷程
Docker利用容器技術(shù)彌合了各個云平臺之間的差異,Docker通過容器來打包應用、解耦應用和運行平臺。在進行遷移的時候,只需要在新的服務器上啟動需要的容器即可,而所付出的成本代價是極低的。Docker最初是dotCloud公司的創(chuàng)始人SolomonHykes所帶領(lǐng)的團隊發(fā)起的,其主要項目代碼在GitHub上進行維護。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點1.Docker的定義
Docker是以Docker容器為資源分割和調(diào)度的基本單位,封裝整個軟件運行時環(huán)境,為開發(fā)者和系統(tǒng)管理員設計,用于構(gòu)建、發(fā)布和運行分布式應用的平臺。它是一個跨平臺、可移植且簡單易用的容器解決方案。Docker的源代碼托管在GitHub上,基于Go語言開發(fā),并遵從Apache2.0協(xié)議。Docker可在容器內(nèi)部快速自動化地部署應用,并通過操作系統(tǒng)內(nèi)核技術(shù)(namespace、CGroups等)為容器提供資源隔離與安全保障。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點2.容器
容器是一種基礎(chǔ)工具;泛指任何可以用于容納其他物品的工具,可以部分或完全封閉,被用于容納、儲存、運輸物品;物體可以被放置在容器中,而容器則可以保護內(nèi)容物;比如:瓶、罐、桶、袋等。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點3.Docker的特點
輕量級、可移植的:Docker借鑒集裝箱運貨物的思想,讓開發(fā)人員將應用程序及其依賴打包到一個輕量級、可移植的容器中,然后發(fā)布到任何運行Docker容器引擎的環(huán)境中,以容器方式來運行該應用程序。標準化平臺:Docker為應用程序的開發(fā)、發(fā)布和運行提供一個基于容器的標準化平臺。容器運行的是應用程序,Docker平臺用來管理容器的整個生命周期??缮炜s服務:Docker具有為用戶提供在各種平臺上安全可靠地部署可伸縮服務的能力。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點Docker本身并不是容器,它是創(chuàng)建容器的工具,是應用容器引擎??谔?:“Build,ShipandRun”(搭建、發(fā)送、運行)任務1.1認識Docker技術(shù)相關(guān)知識1.1即“搭建、發(fā)送、運行”1.1.2Docker的概念與特點例如:在A地有一棟房子,現(xiàn)需要在B地蓋一棟一模一樣的房子。任務1.1認識Docker技術(shù)相關(guān)知識1.1A地B地傳統(tǒng)的作法:在B地利用與A地建房圖紙新建一棟一模一樣的房子任務1.1認識Docker技術(shù)相關(guān)知識1.1利用魔法,把蓋好的房子復制一份,做成“鏡像”,放在背包里1.1.2Docker的概念與特點任務1.1認識Docker技術(shù)相關(guān)知識1.1利用魔法,在B地找一片空地,就用這個“鏡像”,復制一套房子,擺在那邊,拎包入住??谔?:“Build?once,Run?anywhere(搭建一次,到處能用)”。Docker技術(shù)的三大核心概念,分別是:鏡像(Image)容器(Container)倉庫(Repository)如上例:放在背包里的“鏡像”,就是Docker鏡像,而背包,就是Docker倉庫,在B地用魔法造好的房子,就是一個Docker容器。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點4.優(yōu)點(1)更快的交付和部署開發(fā)人員在本地編寫應用程序代碼,通過Docker與同事進行共享。通過Docker將應用程序推送到測試環(huán)境中,執(zhí)行自動測試和手動測試。開發(fā)人員發(fā)現(xiàn)程序錯誤時,可以在開發(fā)環(huán)境中進行修復,然后重新部署到測試環(huán)境來進行測試和驗證。完成應用程序測試之后,向客戶提供補丁程序非常簡單,只需將更新后的鏡像推送到生產(chǎn)環(huán)境中。任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點4.優(yōu)點(2)高效的資源利用和隔離(3)環(huán)境標準化和版本控制(4)更輕松的遷移和擴展(5)更簡單的維護和更新管理任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點5.Docker的用途(1)簡化配置(2)代碼管理化管理(3)開發(fā)人員的生產(chǎn)化(4)隔離應用(5)整合服務器(6)調(diào)試能力(7)多租戶環(huán)境(8)快速部署任務1.1認識Docker技術(shù)相關(guān)知識1.11.1.2Docker的概念與特點實訓目的(1)能夠熟練使用百度、Google等搜索工具。(2)掌握在VmwareWorkstation中安裝RHEL8的步驟。實訓內(nèi)容(1)通過搜索工具,了解Docker的發(fā)展歷程、概念、特點。(2)利用VmwareWorkstation工具,完成RHEL8的安裝。任務1.1認識Docker技術(shù)項目實訓搭建RedHatEnterpriseLinux(RHEL)8.1運行環(huán)境1.1準備安裝環(huán)境(1)創(chuàng)建虛擬機(2)在虛擬機中安裝RHEL操作系統(tǒng)(3)禁用防火墻與Selinux(4)設置網(wǎng)絡系統(tǒng)(5)設置主機名(6)確認日期時間設置正確任務1.1認識Docker技術(shù)項目實訓搭建RedHatEnterpriseLinux(RHEL)8.1運行環(huán)境1.1ThankYOU!Docker容器技術(shù)與應用湖北輕工職業(yè)技術(shù)學院Docker概述項目1Docker是時下流行的容器技術(shù),在云計算領(lǐng)域應用廣泛。本項目通過兩個任務,主要介紹容器技術(shù)的發(fā)展及其應用,以及Docker在RHEL8.1和Windows操作系統(tǒng)中安裝的詳細步驟。知識目標掌握Docker與傳統(tǒng)虛擬機的區(qū)別。掌握Docker的應用。能力目標掌握在RHEL8.1中安裝Docker的步驟掌握在Windows中安裝Docker的步驟掌握Docker容器啟動和驗證的基本方法素質(zhì)目標培養(yǎng)自主鉆研的工匠精神。樹立誠信意識。項目一:Docker概述目錄任務1.1、認識Dokcer技術(shù)任務1.2、熟悉Dokcer的安裝方法任務1.1、認識Dokcer技術(shù)回顧1、為什么需要云平臺2、公有云與私有云的區(qū)別及優(yōu)缺點3、為什么會出現(xiàn)docker4、docker的定義、核心概念、優(yōu)點工程師小王完成對Docker技術(shù)的調(diào)研后,公司安排小王編寫Docker的安裝手冊,供公司相關(guān)技術(shù)人員學習,以便在公司內(nèi)部推廣該技術(shù)。任務1.2熟悉Docker的安裝方法任務要求1.2調(diào)研Docker與傳統(tǒng)虛擬機的區(qū)別
傳統(tǒng)虛擬機運行在宿主機之上,具有完整的操作系統(tǒng)。其自身的內(nèi)存管理通過相關(guān)的虛擬設備進行支持。在虛擬機中,可為用戶操作系統(tǒng)和虛擬機管理程序分配有效的資源,從而在單臺主機上并行運行一個或多個操作系統(tǒng)的多個實例。每個客戶操作系統(tǒng)都作為主機系統(tǒng)中的單個實體運行,但會占用較多的CPU、內(nèi)存、硬盤資源。圖1-1傳統(tǒng)虛擬機架構(gòu)任務1.2熟悉Docker的安裝方法相關(guān)知識1.2調(diào)研Docker與傳統(tǒng)虛擬機的區(qū)別
圖1-1傳統(tǒng)虛擬機架構(gòu)任務1.2熟悉Docker的安裝方法相關(guān)知識1.2虛擬化技術(shù):基礎(chǔ)鏡像GB級別創(chuàng)建使用稍微復雜隔離性強啟動速度慢移植與分享不方便……Docker不同于傳統(tǒng)的虛擬機,Docker容器是使用Docker引擎而不是管理程序來執(zhí)行的。它只包含應用程序及依賴庫,基于Libcontainer運行在宿主機上,因此容器比虛擬機小,并且由于主機內(nèi)核的共享,可以更快地啟動,具有更好的性能、更少的隔離和更好的兼容性。啟動容器只需幾秒即可完成。由于Docker輕量、資源占用少,使得Docker可以輕易地應用到構(gòu)建標準化的應用中。圖1-2Docker架構(gòu)任務1.2熟悉Docker的安裝方法相關(guān)知識1.2
圖1-2Docker架構(gòu)任務1.2熟悉Docker的安裝方法相關(guān)知識1.2容器化技術(shù):基礎(chǔ)鏡像MB級別創(chuàng)建簡單隔離性強啟動速度秒級移植與分享方便……資源隔離:cpu、memory資源隔離與限制訪問設備隔離與限制網(wǎng)絡隔離與限制用戶、用戶組隔離限制……Docker容器技術(shù)與傳統(tǒng)虛擬機技術(shù)的特性比較如表1-1所示特性技術(shù)容器虛擬機啟動速度秒級分鐘級性能接近原生較弱內(nèi)存代價很小較多占用磁盤空間一般為MB一般為GB運行密度單機支持上千個容器一般支持幾十個容器隔離性安全隔離完全隔離遷移性優(yōu)秀一般表1-1Docker容器技術(shù)與傳統(tǒng)虛擬機技術(shù)的特性比較任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker引擎任務1.2熟悉Docker的安裝方法相關(guān)知識1.2圖1-3Docker引擎Docker架構(gòu)Docker采用客戶端/服務器(Client/Server,C/S)架構(gòu)模式,Docker架構(gòu)如圖1-4所示。DockerDaemon作為服務端接收客戶端的請求,服務器端負責構(gòu)建、運行和分發(fā)容器??蛻舳撕头掌鞫丝梢赃\行在同一個Host上,客戶端也可以通過Socket或RESTAPI與遠程的服務器端通信。任務1.2熟悉Docker的安裝方法相關(guān)知識1.2圖1-4Docker架構(gòu)圖1-4Docker架構(gòu)任務1.2熟悉Docker的安裝方法相關(guān)知識DockerDaemon可以守護進程在宿主機后臺運行,用戶并不直接與其進行交互,而是通過DockerClient間接和其通信。DockerClient以系統(tǒng)命令的形式存在,用戶使用Docker命令來與DockerDaemon交互。DockerDaemon接收用戶指令并與Docker共同守護進程通信。1.2Docker的核心組件Docker的核心組件包括Docker客戶端(Client)、Docker服務器(DockerDaemon)、Docker鏡像(Image)、Docker倉庫和Docker容器(Container)。1.Docker客戶端Docker客戶端通過命令行或者其他工具使用DockerAPI與Docker的守護進程通信。2.Docker服務器DockerDaemon是服務器組件,以Linux后臺服務的方式運行。3.Docker鏡像Docker鏡像就是一個只讀的模板,鏡像可以用于創(chuàng)建Docker容器,每一個鏡像由一系列的層組成。任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker的核心組件
常用的生成鏡像的方法主要有以下3種:創(chuàng)建新鏡像下載并使用他人創(chuàng)建好的現(xiàn)成的鏡像在現(xiàn)有鏡像上創(chuàng)建新的鏡像。用戶可以將鏡像的內(nèi)容和創(chuàng)建步驟描述在一個文本文件中,這個文件就稱為Dockerfile,通過執(zhí)行“dockerbuild<docker-file>”命令可以構(gòu)建出docker鏡像,后續(xù)詳細說明。任務1.2熟悉Docker的安裝方法相關(guān)知識1.24.Docker倉庫Docker倉庫類似于代碼倉庫,它是Docker集中存放鏡像文件的場所。有時候,人們會把Docker倉庫和倉庫注冊服務器(Registry)混為一談,并不嚴格區(qū)分。實際上,倉庫注冊服務器是存放倉庫的地方,其上往往存放著多個倉庫,每個倉庫集中存放某一類鏡像,往往包括多個鏡像文件,通過不同的標簽來進行區(qū)分。Docker倉庫分為公有(Public)倉庫和私有(Private)倉庫兩種形式。目前,最大的公有倉庫是DockerHub,存放了數(shù)量龐大的鏡像供用戶下載。當然,Docker也支持用戶在本地網(wǎng)絡中創(chuàng)建一個私有倉庫。當用戶創(chuàng)建了自己的鏡像之后,可以使用push命令將其上傳到公有或者私有倉庫中,這樣,當用戶需在另一臺主機上使用該鏡像時,只需要將鏡像從倉庫中獲取下來即可。任務1.2熟悉Docker的安裝方法相關(guān)知識1.25.Docker容器Docker利用容器來運行應用。容器是從鏡像創(chuàng)建的運行實例,它可以被啟動、開始、終止、刪除。容器是一個隔離環(huán)境,多個容器之間不會相互影響,以保證容器中的應用運行在一個相對安全的環(huán)境中。任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker所用的底層技術(shù)名稱空間:Docker通過名稱空間機制為容器提供隔離的工作空間??刂平M:Linux可以通過控制組設置進程使用CPU、內(nèi)存和I/O資源的限額。Docker引擎正是依賴這種底層技術(shù)來限制容器使用的資源。聯(lián)合文件系統(tǒng):可以將其他文件系統(tǒng)合并到一個聯(lián)合掛載點。聯(lián)合文件系統(tǒng)是實現(xiàn)Docker鏡像的技術(shù)基礎(chǔ)。Docker鏡像可以通過分層來實現(xiàn)繼承。容器格式:Docker引擎將名稱空間、控制組和聯(lián)合文件系統(tǒng)打包到一起所使用的就是容器格式。默認的容器格式是Libcontainer。
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker與DevOpsDevOps開發(fā)運維一體化,旨在突出軟件開發(fā)人員和運維人員的溝通合作,通過自動化流程使得軟件的構(gòu)建、測試、發(fā)布更加快捷、頻繁和可靠。DevOps也是讓開發(fā)、測試和運維高效協(xié)作的流程,適合需求變化多、需要快速迭代、頻繁上線的場景。傳統(tǒng)開發(fā)模式涉及開發(fā)、測試和生產(chǎn)3個環(huán)境,需要開發(fā)、測試和運維3個團隊。多個環(huán)境和多個團隊之間的這種交互,容易出現(xiàn)彼此環(huán)境不一致的情況。容器對軟件及其依賴進行標準化打包,在開發(fā)和運維之間搭建了一座橋梁,旨在解決開發(fā)和運維之間的矛盾。
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker與DevOps傳統(tǒng)開發(fā)流程與容器化開發(fā)流程的比較
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2圖1-5傳統(tǒng)開發(fā)流程與容器化開發(fā)流程的比較Docker應用現(xiàn)代應用程序微服務持續(xù)集成和持續(xù)部署大數(shù)據(jù)應用邊緣計算云遷移數(shù)字化轉(zhuǎn)型傳統(tǒng)Windows服務器應用程序的現(xiàn)代化
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2調(diào)查國內(nèi)的docker應用現(xiàn)狀阿里巴巴業(yè)務容器化PouchContainer大大改變了原來基于T4容器化的開發(fā)運維體系
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2阿里容器鏡像服務阿里云容器服務調(diào)查國內(nèi)的docker應用現(xiàn)狀京東業(yè)務容器化京東是全球范圍內(nèi)Docker應用的大用戶之一,有數(shù)十萬個Docker容器上線運行。京東的彈性云項目在京東的業(yè)務中擔當重任,目前全部應用系統(tǒng)和大部分的數(shù)據(jù)庫服務都在Docker平臺上運行。京東容器數(shù)據(jù)庫系統(tǒng)命名為CDS底層的京東Docker容器計算平臺命名為JDOS。JDOS2.0是京東新一代的容器技術(shù),是Docker的管理平臺,實際上京東所有的數(shù)據(jù)庫服務現(xiàn)在已經(jīng)完運行在Docker上了。
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker的版本分類DockerEngineDocker企業(yè)版任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker的版本分類
Docker的早期版本是docker-io,版本號是1.*,最新版是26.1.3。Docker從1.13版本之后采用時間線的方式作為版本號,分為DockerCE(社區(qū)版)和DockerEE(企業(yè)版)。
DockerCE(社區(qū)版)是免費提供給個人開發(fā)者和小型團體使用的,DockerEE(企業(yè)版)會提供額外的收費服務,如經(jīng)過官方測試認證過的基礎(chǔ)設施、容器、插件等。
Docker現(xiàn)在改為基于YY.MM版本。DockerCE(社區(qū)版)按照stable和edge兩種方式發(fā)布,每個季度更新stable版本,每個月份更新edge版本。例如,使用基于月份的發(fā)行版本,17.03的第1版就指向17.03.0,如果有漏洞/安全修復需要發(fā)布,那么將會指向17.03.1等。
任務1.2熟悉Docker的安裝方法相關(guān)知識1.2Docker
CE所支持的平臺適合安裝DockerCE的桌面操作系統(tǒng)有macOs和MicrosoftWindows10,前者對應的版本為DockerDesktopforMac,后者對應的版本為DockerDesktopforWindows。適合安裝DockerCE的服務器操作系統(tǒng)是Linux,不同發(fā)行版本對硬件平臺架構(gòu)有特定的要求。任務1.2熟悉Docker的安裝方法相關(guān)知識1.2任務1.2熟悉Docker的安裝方法Docker安裝方式大多數(shù)用戶通過Docker的軟件倉庫進行安裝,以便安裝和升級。有些用戶選擇下載軟件包手動安裝,完全手動管理升級。在測試和開發(fā)環(huán)境中,有的用戶選擇使用自動化便捷腳本安裝Docker。1.2實訓目的(1)掌握Docker在RedHat8操作系統(tǒng)中的安裝方法。(2)掌握Docker在Windows操作系統(tǒng)中的安裝方法。實訓內(nèi)容(1)在RedHat操作系統(tǒng)中安裝Docker。(2)在Windows操作系統(tǒng)中安裝Docker的最新版本。任務1.2熟悉Docker的安裝方法項目實訓1.2準備安裝環(huán)境(1)創(chuàng)建虛擬機(2)在虛擬機中安裝RHEL8.1操作系統(tǒng)(3)禁用防火墻與Selinux(4)設置網(wǎng)絡系統(tǒng)(5)設置主機名(6)確認日期時間設置正確任務1.2熟悉Docker的安裝方法任務實訓在RHEL8.1中在線安裝Docker1.2設置docker倉庫(1)安裝必需的軟件包(2)設置yum源-配置dockerCE穩(wěn)定版的倉庫地址任務1.2熟悉Docker的安裝方法任務實訓在RHEL8.1中在線安裝Docker1.2安裝docker
CE(1)查看docker版本(2)安裝dockerCE(3)驗證是否安裝任務1.2熟悉Docker的安裝方法任務實訓在RHEL8.1中在線安裝Docker1.2啟動并測試docker
CE(1)啟動docker(2)配置鏡像加速器(3)拉取nginx:latest鏡像,并利用nginx鏡像生成容器名為nginx01的容器(4)web訪問:“00”任務1.2熟悉Docker的安裝方法任務實訓在RHEL8.1中在線安裝Docker1.2ThankYOU!Docker容器技術(shù)與應用湖北輕工職業(yè)技術(shù)學院項目2項目背景
在正常情況下,docker有一個默認連接的國外官方鏡像,在國外的用戶訪問該官方鏡像自然不成問題,但是國內(nèi),由于國情不同,中國的網(wǎng)絡訪問國外官方鏡像網(wǎng)速一向很慢,而且往往還會遭遇斷網(wǎng)的窘境,所以對于國內(nèi)的用戶,要想正常使用docker的鏡像,就不得不配置相應的國內(nèi)鏡像。Docker鏡像管理和定制Docker鏡像管理和定制項目2鏡像是Docker的核心技術(shù)之一,是創(chuàng)建Docker容器的基礎(chǔ)模板。本項目通過3個任務介紹鏡像的基本概念和圍繞鏡像這一核心概念的具體操作,包括如何使用pull命令獲取鏡像、如何查看本地已有的鏡像信息和管理鏡像、如何創(chuàng)建用戶定制的鏡像,以及如何創(chuàng)建私有倉庫。項目二:Docker鏡像管理和定制目錄任務2.1、查看和管理Docker鏡像任務2.2、創(chuàng)建和使用私有倉庫任務2.3、創(chuàng)建定制的Docker鏡像認識和安裝Dokcer回顧1、為什么需要云平臺2、公有云與私有云的區(qū)別及優(yōu)點3、為什么會出現(xiàn)docker4、docker的定義、核心概念、優(yōu)點5、虛擬化技術(shù)與容器化技術(shù)6、docker引擎及底層技術(shù)7、Linux下在線安裝Docker知識目標了解鏡像的基本概念。掌握鏡像的常用操作命令。能力目標掌握鏡像的分層操作。掌握鏡像的基本操作。素質(zhì)目標培養(yǎng)愛國主義。樹立民族自豪感。工程師小王編寫完Docker安裝手冊并提交后,公司安排小王繼續(xù)編寫相關(guān)技術(shù)手冊,旨在在公司內(nèi)部更廣泛地推廣Docker技術(shù)的應用與實踐。小王決定編寫關(guān)于Docker鏡像管理的操作手冊,以期提供更加直觀、高效的實踐資料。任務2.1查看和管理Docker鏡像任務要求2.1Docker鏡像 Docker鏡像類似于虛擬機中的鏡像,是一個只讀的模板,也是一個獨立的文件系統(tǒng),包括運行容器所需的數(shù)據(jù)。。例如,一個鏡像可以包含一個基本的操作系統(tǒng)環(huán)境,其中僅安裝了nginx應用或用戶需要的其他應用,可以將其稱為一個nginx鏡像。任務2.1查看和管理Docker鏡像相關(guān)知識2.1Docker鏡像鏡像在IT領(lǐng)域通常是一系列文件或一個磁盤驅(qū)動器的精確副本。Docker鏡像是按照docker要求定制的應用程序,就像軟件安裝包一樣。一個Docker鏡像可以包括一個應用程序以及能夠運行它的基本操作系統(tǒng)環(huán)境。對于linux系統(tǒng)而言,內(nèi)核啟動后,會掛載root文件系統(tǒng)為其提供用戶空間支持,而docker鏡像相當于是一個root文件系統(tǒng)。鏡像是創(chuàng)建容器的基礎(chǔ),是通過版本管理和增量的文件系統(tǒng),docker提供了一套十分簡單的機制來創(chuàng)建和更新現(xiàn)有的鏡像。鏡像是一種輕量級、可執(zhí)行的獨立軟件包,用來打包軟件運行環(huán)境和基于運行環(huán)境開發(fā)的軟件,它包含運行某個軟件所需的所有內(nèi)容,包含代碼、運行庫、環(huán)境變量和配置文件。
任務2.1查看和管理Docker鏡像相關(guān)知識2.1Docker鏡像 Docker鏡像是Docker容器的靜態(tài)表示,包括Docker容器所要運行的應用代碼及運行時的配置。Docker鏡像采用分層的方式構(gòu)建,每個鏡像均由一系列的“鏡像層”組成。鏡像一旦被創(chuàng)建就無法被修改。任務2.1查看和管理Docker鏡像相關(guān)知識2.1圖2-1Docker容器的分層結(jié)構(gòu)任務2.1查看和管理Docker鏡像2.1Docker鏡像是Docker容器的靜態(tài)表示,一個運行著的docker容器是一個鏡像的實例,那如果需要修改容器鏡像的某個文件時,那就只能對處于最上層的可寫層進行變動,而不能覆蓋下面只讀層的內(nèi)容。這個圖就表示了只讀層和只寫層的分層結(jié)構(gòu)關(guān)系,可寫層位于底下的若干只讀層之上,運行時的所有變化,包括對數(shù)據(jù)和文件的寫和更新,都會保存在可層層中。Docker鏡像Docker鏡像采用了寫時復制(Copy-on-Write)的策略,在多個容器之間共享鏡像,每個容器在啟動的時候并不需要單獨復制一份鏡像文件,而是將所有鏡像層以只讀的方式掛載到一個掛載點,再在上面覆蓋一個可讀寫的容器層。寫時復制策略配合分層機制的應用,減少了鏡像對磁盤空間的占用和容器啟動時間。任務2.1查看和管理Docker鏡像相關(guān)知識2.1Docker鏡像采用統(tǒng)一文件系統(tǒng)對各層進行管理。統(tǒng)一文件系統(tǒng)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供一個統(tǒng)一的視角,這樣就隱藏了多層的存在,從用戶的角度看來,只存在一個文件系統(tǒng)。使用Docker的常用命令(1)獲取鏡像——鏡像倉庫中拉取或者更新指定鏡像命令格式:dockerpull[DockerRegistry地址]<鏡像名>[:<標簽名>]例如,獲取centos:latest鏡像的代碼如下。[root@master~]#dockerpullcentos:latest例如:從私有倉庫中獲取centos:latest鏡像,私有倉庫地址為0的代碼如下:[root@master~]#dockerpull0:5000/centos:latest任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(2)查看鏡像信息。
命令格式:
dockerimages[選項][<鏡像名>][:<標簽名>]dockerimages命令的常用選項如下。
①-a:列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層)。
②-f:顯示滿足條件的鏡像。
③-q:只顯示鏡像ID。
例如,列出本地鏡像的代碼如下。[root@localhost~]#dockerimages任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(2)查看鏡像信息:dockerimages
任務2.1查看和管理Docker鏡像相關(guān)知識2.1dockerimage命令顯示信息中各字段的說明如下:REPOSITORY:表示鏡像的倉庫源,也可以說是鏡像的名稱。TAG:鏡像的標簽,同一個倉庫可以有多個TAG,代表這個倉庫源的不同鏡像版本,如CENTOS倉庫源中有7.3、7.4等不同版本,可以使用REPOSITORY:TAG來定義不同的鏡像。IMAGEID:鏡像ID,可以通過dockerrespectcentos:lastest,repodigests字段就是實際鏡像id,全長64個十六進制字符,它是由哈希函數(shù)sha256對鏡像配置文件計算而來,實際它只取了dockerrespectcentos:lastest里字段id的前幾位。CREATED:鏡像創(chuàng)建時間。SIZE:鏡像大小。
使用Docker的常用命令(3)查找鏡像——
從DockerHub查找鏡像
命令格式:
dockersearch[選項]TERMdockersearch命令的常用選項如下。
①--automated:默認為False,即顯示automatedbuild鏡像。
②--no-trunc:默認為False,即顯示完整的鏡像描述。
③-s:列出收藏數(shù)不小于指定值的鏡像。
例如,查找鏡像名為centos的鏡像的代碼如下。[root@localhost~]#dockersearchcentos任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(3)查找鏡像:dockersearch任務2.1查看和管理Docker鏡像相關(guān)知識2.1例如:從DockerHub查找所有鏡像名包含java,并且收藏數(shù)大于10的鏡像參數(shù)說明:NAME:
鏡像倉庫源的名稱DESCRIPTION:
鏡像的描述OFFICIAL:
是否docker官方發(fā)布stars:
類似Github里面的star,表示點贊、喜歡的意思。AUTOMATED:
自動構(gòu)建使用Docker的常用命令(4)標記鏡像。
dockertag:
標記本地鏡像,將其歸入某一倉庫。(標簽可以看作是別名,一個鏡像可以有多個標簽,但只能有一個ID)
命令格式:
dockertag[鏡像名]:[原標簽名][鏡像名]:[新標簽名]
例如,將centos:latest鏡像標記為centos:test鏡像。[root@localhost~]#dockertagcentos:latestcentos:test任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(4)標記鏡像:dockertag例如:將centos:latest鏡像標記位centos:test鏡像:任務2.1查看和管理Docker鏡像相關(guān)知識2.1從dockerimages命令的結(jié)果來看:本地的centos:latest鏡像沒有任何改變,只是新增了一個標簽,標簽名為centos:test使用Docker的常用命令(5)刪除鏡像。
命令格式:
dockerrmi[選項]鏡像1[鏡像2...]dockerrmi命令的常用選項如下。
①-f:強制刪除。
②--no-prune:不移除該鏡像的過程鏡像,默認是移除該鏡像的過程鏡像的。
例如,列出本地主機的所有鏡像,并刪除鏡像名為mysql:latest的鏡像的代碼如下。[root@localhost~]#
dockerrmi–f
mysql:latest //等價于dockerrmi-fmysql利用dockerrmi可以刪除不需要的鏡像,以釋放鏡像占用的磁盤空間。任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(5)刪除鏡像。
命令格式:
dockerrmi在刪除鏡像時,也可以使用鏡像ID、鏡像短ID進行刪除。例如:[root@localhost~]#
dockerrmi–f
61
或[root@localhost~]#
dockerrmi–f
b1f0940swi08882批量刪除鏡像:dockerimage–q命令進行配置任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(5)刪除鏡像。
命令格式:
dockerrmi例如:刪除所有倉庫名為ubuntu的鏡像代碼如下: [root@localhost~]#
dockerrmi–f
$(dockerimage–qubuntu)
刪除本地所有鏡像的代碼如下:[root@localhost~]#
dockerrmi–f
$(dockerimage–q)任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(5)刪除鏡像。任務2.1查看和管理Docker鏡像相關(guān)知識2.1當一個鏡像有多個標簽時,dockerrmi命令僅刪除該鏡像多個標簽中的指定標簽,不會影響鏡像文件,相當于只刪除了鏡像0e1c0c70dbc5的一個標簽。但當該鏡像只剩下一個標簽時,再使用刪除命令就會徹底刪除該鏡像。使用Docker的常用命令(5)刪除鏡像。任務2.1查看和管理Docker鏡像相關(guān)知識2.1問題:如果使用dockerrmi0e1c0c70dbc5命令,可以直接同時刪除相同鏡像的不同標簽嗎?回答:不可以(5)刪除鏡像。
任務2.1查看和管理Docker鏡像2.1問題:如果使用dockerrmiredhat命令,可以直接同時刪除相同鏡像的不同標簽嗎?(5)刪除鏡像。
任務2.1查看和管理Docker鏡像2.1問題:如果使用dockerrmiredhat命令,可以直接同時刪除相同鏡像的不同標簽嗎?回答:不可以(5)刪除鏡像。問題:如果刪除報以下錯誤,怎么辦?
任務2.1查看和管理Docker鏡像2.1(5)刪除鏡像。問題:如果刪除報以下錯誤,怎么辦?
任務2.1查看和管理Docker鏡像2.1解決辦法:先需要關(guān)閉刪除容器,再刪除鏡像。查看當前運行的容器:dockerps-a關(guān)閉容器:dockerstop$(dockerps-a-q)或dockerstopnginx01刪除容器:dockerrm$(dockerps-a-q)或dockerrm-rfnginx01刪除:nginx:latest鏡像:dockerrminginx:latest(5)刪除鏡像。鏡像可以理解為一種構(gòu)建時(build-time)結(jié)構(gòu),而容器可以理解為一種運行時(run-time)結(jié)構(gòu)。上圖從頂層設計層面展示了鏡像和容器間的關(guān)系。通常使用命令從某個鏡像啟動一個或多個容器。一旦容器從鏡像啟動后,二者之間就變成了互相依賴的關(guān)系,并且在鏡像上啟動的容器全部停止之前,鏡像是無法被刪除的。嘗試刪除鏡像而不停止或銷毀使用它的容器,會導致出錯。因此:刪除鏡像時,系統(tǒng)會先刪除指向該鏡像的所有標簽,然后刪除該鏡像本身。如果該鏡像已經(jīng)被容器使用,正確的做法是先刪除依賴該鏡像的所有容器,再去刪除鏡像。
任務2.1查看和管理Docker鏡像2.1使用Docker的常用命令(6)鏡像的導入。
命令格式:dockerload——可實現(xiàn)鏡像的導入。語法:dockerload[OPTIONS]OPTIONS說明: --input,-i:指定導入的文件,代替STDIN。 --quiet,-q:精簡輸出信息。例如,將ubuntu.tar文件導入的代碼如下。[root@localhost~]#dockerload--inputubuntu.tar任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(7)鏡像的導出。
命令格式:dockersave—將指定鏡像保存成tar歸檔文件,即將鏡像導出。語法:dockersave[OPTIONS]IMAGE[IMAGE...]OPTIONS說明: -o:輸出到的文件例如,將ubuntu:latest鏡像導出生成ubuntu.tar文件的代碼如下。[root@localhost~]#dockersave-oubuntu.tarubuntu:latest
任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(8)上傳鏡像。
命令格式:dockerpush[鏡像名]:[標簽名]——
可將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
例如,上傳本地鏡像centos:test至鏡像倉庫的代碼如下。[root@localhost~]#dockerpushcentos:test任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(9)查看鏡像詳細信息--獲取容器/鏡像的元數(shù)據(jù)(JSON格式)命令格式:dockerinspect[OPTIONS]NAME|ID[NAME|ID...]選項: -f指定返回值的模板文件; -s如果類型為容器,則顯示文件總大小; --type返回指定類型的JSON[root@localhost~]#dockerinspectcentos任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(9)查看鏡像詳細信息--獲取容器/鏡像的元數(shù)據(jù)(JSON格式)
[root@localhost~]#dockerinspectcentos任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(9)查看鏡像詳細信息。舉例:(1)獲取容器IP:#dockerinspect--format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}$CONTAINER_ID(2)獲取IP地址#dockerinspecttomcat7|grepIPAddress獲取日志路徑(3)#dockerinspect--format='{{.LogPath}}'$CONTAINER_ID1任務2.1查看和管理Docker鏡像相關(guān)知識2.1使用Docker的常用命令(10)其他鏡像命令。dockerlogin:
登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫DockerHub。dockerlogout:
登出一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫DockerHub。dockerbuild
命令用于使用Dockerfile創(chuàng)建鏡像。dockerimport:
從歸檔文件中創(chuàng)建鏡像。dockerhistory:
查看指定鏡像的創(chuàng)建歷史。任務2.1查看和管理Docker鏡像相關(guān)知識2.1鏡像命令總結(jié):
任務2.1查看和管理Docker鏡像相關(guān)知識2.1鏡像命令總結(jié):
任務2.1查看和管理Docker鏡像相關(guān)知識2.1實訓目的(1)掌握Docker鏡像的基本概念。(2)掌握Docker鏡像的基本操作命令。實訓內(nèi)容(1)列出所有本地鏡像。。(2)拉取鏡像redhat/ubi8。(3)查看本地的鏡像列表。(4)實現(xiàn)鏡像的導入、導出操作。(5)構(gòu)建私有倉庫。(6)將本地鏡像推送到私有倉庫中。(7)刪除本地鏡像。任務2.1查看和管理Docker鏡像項目實訓Docker鏡像常用命令的使用2.1ThankYOU!Docker容器技術(shù)與應用湖北輕工職業(yè)技術(shù)學院Docker鏡像管理和定制項目2項目背景在正常情況下,docker有一個默認連接的國外官方鏡像,在國外的用戶訪問該官方鏡像自然不成問題,但是國內(nèi),由于國情不同,中國的網(wǎng)絡訪問國外官方鏡像網(wǎng)速一向很慢,而且往往還會遭遇斷網(wǎng)的窘境,所以對于國內(nèi)的用戶,要想正常使用docker的鏡像,就不得不配置相應的國內(nèi)鏡像。Docker鏡像管理和定制項目2鏡像是Docker的核心技術(shù)之一,是創(chuàng)建Docker容器的基礎(chǔ)模板。本項目通過3個任務介紹鏡像的基本概念和圍繞鏡像這一核心概念的具體操作,包括如何使用pull命令獲取鏡像、如何查看本地已有的鏡像信息和管理鏡像、如何創(chuàng)建用戶定制的鏡像,以及如何創(chuàng)建私有倉庫。項目二:Docker鏡像管理和定制目錄任務2.1、查看和管理Docker鏡像任務2.2、創(chuàng)建和使用私有倉庫任務2.3、創(chuàng)建定制的Docker鏡像查看和管理Docker鏡像回顧1、了解鏡像的基本概念。2、掌握鏡像的常用操作命令。查看和管理Docker鏡像回顧知識目標了解倉庫的基本概念。掌握鏡像倉庫的構(gòu)建方法。能力目標掌握鏡像倉庫的使用方法。掌握私有倉庫的創(chuàng)建方法。素質(zhì)目標樹立責任擔當。培養(yǎng)安全意識。工程師小王編寫完Docker鏡像基礎(chǔ)操作手冊后,發(fā)現(xiàn)鏡像操作手冊中所用的鏡像均基于DockerHub公共倉庫,在實際應用過程中存在與實際需求有差異的問題。因此,小王決定鉆研私有倉庫,并完成構(gòu)建私有倉庫的工作。任務2.2創(chuàng)建和使用私有倉庫任務要求2.2任務2.2創(chuàng)建和使用私有倉庫2.2鏡像、容器、倉庫的關(guān)系相關(guān)知識圖2.1鏡像、容器、倉庫的關(guān)系
Docker鏡像倉庫Docker鏡像倉庫(DockerRegistry)作為Docker的重要核心組件,主要負責存儲、管理和分發(fā)Docker鏡像。鏡像可以根據(jù)業(yè)務需求的不同以不同類型的形式存在。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker鏡像倉庫
鏡像倉庫是集中存放鏡像的地方,分為公共倉庫和私有倉庫。倉庫注冊服務器(Registry)是存放倉庫的地方,一個DockerRegistry中可私有以包含多個倉庫,各個倉庫根據(jù)不同的標簽和鏡像名管理各種Docker鏡像。
一個鏡像倉庫中可以包含同一個軟件的不同鏡像,利用標簽進行區(qū)別??梢岳?lt;倉庫名>:<標簽>的格式來指定相關(guān)軟件鏡像的版本。例如,centos:6.5和centos:7.2代表鏡像名為centos,利用標簽6.5和7.0來區(qū)分版本。如果忽略標簽,則默認會使用latest進行標記。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker鏡像倉庫倉庫名通常以兩段路徑形式出現(xiàn),以斜杠為分隔符,可包含可選的主機名前綴。主機名必須符合標準的DNS規(guī)則,不能包含下畫線。如果存在主機名,則可以在其后加一個端口號,反之,使用默認的Docker公共倉庫。例如,hbliti/nginx:version1.0.test表示倉庫名為hbliti、鏡像名為nginx、標簽名為version1.0.test的鏡像。如果要將鏡像推送到一個私有的Registry,而不是公共的DockerRegistry,則必須指定一個Registry的主機名和端口來標記此鏡像,如03:5000/nginx:version1.1.test。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker公共倉庫DockerHub是默認的DockerRegistry,由Docker公司維護,其中擁有大量高質(zhì)量的官方鏡像,供用戶免費上傳、下載和使用。但也有提供收費服務的Registry。公共倉庫DockerHub具有以下特點。(1)數(shù)量大、種類多。(2)穩(wěn)定、可靠、干凈。(3)倉庫名稱前沒有命名空間。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker公共倉庫由于跨地域訪問和源地址不穩(wěn)定等原因,國內(nèi)在訪問DockerHub時,存在訪問速度比較慢且容易報錯的問題,可以通過配置Docker鏡像加速器來解決這個問題,加速器表示鏡像代理,只代理公共鏡像。通過配置Docker鏡像加速器可以直接從國內(nèi)的地址下載DockerHub的鏡像,比直接從官方網(wǎng)站下載快得多。國內(nèi)常用的鏡像加速器有中科大、阿里云和DaoCloud等。常用的配置鏡像加速器的方法有兩種:一種是手動運行命令,另一種是手動配置Docker鏡像加速器。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker公共倉庫這里以在RedHat8中配置阿里云鏡像加速器為例進行介紹,登錄阿里云的鏡像站,找到專屬的鏡像加速器地址,如圖2-2所示。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2圖2-2阿里云專屬的鏡像加速器地址Docker公共倉庫任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2{"registry-mirrors":[""]}針對Docker客戶端版本大于1.10.0的用戶,可以通過創(chuàng)建或修改Daemon配置文件/etc/docker/daemon.json來使用加速器,配置內(nèi)容如下。鏡像加速器配置完成后,需重啟Docker服務。#systemctldaemon-reload#systemctlrestartdockerDocker私有倉庫Docker公有倉庫雖然優(yōu)點有很多,但是也存在一些問題。例如,公司企業(yè)級的一些私有鏡像,由于鏡像涉及一些機密的數(shù)據(jù)和軟件,私密性比較強,因此不太適合放在公有倉庫中。此外,出于安全考慮,一些公司不允許公司內(nèi)網(wǎng)服務器環(huán)境訪問外網(wǎng),因此無法下載到公有倉庫的鏡像。為了解決這些問題,可以根據(jù)需要搭建私有倉庫,存儲私有鏡像。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker私有倉庫私有倉庫具有以下特點。(1)安全性和私密性高??梢员Wo企業(yè)內(nèi)部的鏡像不被外部訪問,從而避免敏感數(shù)據(jù)泄露。通過設置訪問權(quán)限,可以確保只有授權(quán)用戶才能訪問和操作私有倉庫中的鏡像。(2)訪問速度快??梢酝耆刂歧R像的存儲、分發(fā)和管理過程,滿足特定的業(yè)務需求??梢愿鶕?jù)實際需要自定義鏡像的構(gòu)建、發(fā)布和更新流程。(3)自主控制、方便存儲和可維護性高??梢詼p少鏡像下載和上傳的延遲,特別是在內(nèi)部網(wǎng)絡環(huán)境中,可以顯著提高開發(fā)、測試和部署的效率。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Docker私有倉庫常見搭建Docker私有倉庫的方法有利用Registry和Harbor兩種形式。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Registry私有倉庫Registry私有倉庫是用于存儲和分發(fā)Docker鏡像的私有服務器,它允許企業(yè)或團隊在內(nèi)部網(wǎng)絡中管理自己的鏡像,增強對鏡像的控制和安全性。Registry私有倉庫的搭建步驟如下。步驟1:正確安裝Docker,并確保Docker可正常運行。步驟2:下載Registry的鏡像。#dockerpullregistry:latest步驟3:使用dockerrun命令運行Registry容器,并配置相關(guān)參數(shù)以滿足私有倉庫的需求。例如,運行下列命令,利用registry:latest鏡像建立Registry容器。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Registry私有倉庫#dockerrun-d-p5000:5000--restart=always--nameregistry-v/data/registry:/var/lib/registryregistry:latest參數(shù)說明如下。(1)-d:表示在后臺運行容器。(2)-p5000:5000:表示將容器的5000端口映射到宿主機的5000端口。(3)--restart=always:表示容器總是在退出時自動重啟。(4)-v/data/registry:/var/lib/registry:表示將宿主機的/data/registry目錄掛載到容器的/var/lib/registry目錄,以便持久化存儲鏡像數(shù)據(jù)。(5)registry:latest:表示使用最新版本的Registry鏡像。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Registry私有倉庫步驟4:為實現(xiàn)鏡像推送到私有倉庫,需配置/etc/docker/daemon.json文件,通過添加“insecure-registries":["<私有倉庫地址>:5000"]”參數(shù)信息添加私有倉庫地址。步驟5:配置完成后,通過dockerpush命令可實現(xiàn)將鏡像推送到私有倉庫,通過dockerpull命令實現(xiàn)從私有倉庫中獲取鏡像。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Registry私有倉庫(1)推送鏡像命令。#dockertag<本地鏡像名>:<標簽><私有倉庫地址>:5000/<倉庫名>/<鏡像名>:<標簽>#dockerpush<私有倉庫地址>:5000/<倉庫名>/<鏡像名>:<標簽>(2)獲取鏡像的命令。#dockerpull<私有倉庫地址>:5000/<倉庫名>/<鏡像名>:<標簽>任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Harbor私有倉庫DockerHarbor私有倉庫是一個由VMware公司開源的企業(yè)級DockerRegistry項目,旨在幫助用戶迅速搭建一個安全、可靠且功能豐富的Docker鏡像倉庫服務,具有基于角色的訪問控制、基于策略的鏡像復制、漏洞掃描、LDAP/AD支持、鏡像刪除和垃圾收集等強大功能。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Harbor私有倉庫Harbor系統(tǒng)由以下6個組件組成,Harbor整體架構(gòu)如圖2-3所示。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2圖2-3Harbor整體架構(gòu)Harbor私有倉庫Harbor系統(tǒng)由以下6個組件組成,Harbor整體架構(gòu)如圖2-3所示。(1)Porxy:對應啟動組件nginx,提供nginx反向代理服務,該服務來自瀏覽器的DockerClient的不同請求,由Proxy分發(fā)到Harbor的Registry、UI、TokenService等組件。(2)Registry:對應啟動組件Registry,負責提供Docker鏡像的存儲,以及處理Docker的push、pull等請求。由于Harbor需要對鏡像的訪問做權(quán)限控制,因此Registry會將DockerClient的每次push、pull請求轉(zhuǎn)發(fā)到token服務以獲取一個有效的token令牌。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Harbor私有倉庫Harbor系統(tǒng)由以下6個組件組成,Harbor整體架構(gòu)如圖2-3所示。(3)UI:對應啟動harbor-ui組件,主要用于利用圖形用戶界面輔助用戶管理鏡像。(4)JobServices:對應啟動組件harbor-jobservice,主要用于鏡像復制,本地鏡像可以被同步到遠程的Harbor鏡像倉庫。(5)LogCollector:對應啟動組件harbor-log,負責收集其他容器的日志并進行日志輪轉(zhuǎn)。(6)Database:對應啟動組件harbor-db,負責提供數(shù)據(jù)持久化服務,用于存放工程元數(shù)據(jù)、用戶數(shù)據(jù)、角色數(shù)據(jù)、同步策略以及鏡像元數(shù)據(jù)。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2Harbor私有倉庫Harbor系統(tǒng)由以下6個組件組成,Harbor整體架構(gòu)如圖2-3所示。(3)UI:對應啟動harbor-ui組件,主要用于利用圖形用戶界面輔助用戶管理鏡像。(4)JobServices:對應啟動組件harbor-jobservice,主要用于鏡像復制,本地鏡像可以被同步到遠程的Harbor鏡像倉庫。(5)LogCollector:對應啟動組件harbor-log,負責收集其他容器的日志并進行日志輪轉(zhuǎn)。(6)Database:對應啟動組件harbor-db,負責提供數(shù)據(jù)持久化服務,用于存放工程元數(shù)據(jù)、用戶數(shù)據(jù)、角色數(shù)據(jù)、同步策略以及鏡像元數(shù)據(jù)。任務2.2創(chuàng)建和使用私有倉庫相關(guān)知識2.2任務2.2創(chuàng)建和使用私有倉庫任務實訓Harbor日常操作管理2.2主機名IP地址節(jié)點角色regiestry0/24私有倉庫client0/24客戶端【實驗步驟】基礎(chǔ)環(huán)境準備:本實驗選用兩臺部署在VMwareWorkstation16中的RHEL8.1虛擬機作為宿主機,均已預先安裝好Dockerversion26.1.3,并與外網(wǎng)互通,且關(guān)閉防火墻和Selinux配置?!緦嶒災康摹浚?)掌握在RHEL8.1環(huán)境中安裝和配置Harbor私有倉庫的步驟。(2)學習如何使用Harbor管理Docker鏡像,包括上傳、下載、復制鏡像等。實驗步驟:Harbor主機1、在harbor主機上,創(chuàng)建/data/harbor目錄。2、配置docker-compose。3、安裝openssl軟件包,并配置文件f。4、簽發(fā)SSL證書。5、安裝harbor倉庫。6、檢測容器啟動狀態(tài)。任務2.2創(chuàng)建和使用私有倉庫任務實訓Harbor日常操作管理2.2實驗步驟:Harbor主機7、進入harbor工作主界面。8、創(chuàng)建項目。9、登錄私有倉庫。10、將鏡像推送到私有倉庫.11、在test項目中可查看到推送的nginx鏡像任務2.2創(chuàng)建和使用私有倉庫任務實訓Harbor日常操作管理2.2實驗步驟:Client主機1、利用dockerpull命令從私有倉庫中下載nginx鏡像任務2.2創(chuàng)建和使用私有倉庫任務實訓Harbor日常操作管理2.2ThankYOU!Docker容器技術(shù)與應用湖北
輕工職業(yè)技術(shù)學院Docker鏡像管理和定制項目2項目背景在正常情況下,docker有一個默認連接的國外官方鏡像,在國外的用戶訪問該官方鏡像自然不成問題,但是國內(nèi),由于國情不同,中國的網(wǎng)絡訪問國外官方鏡像網(wǎng)速一向很慢,而且往往還會遭遇斷網(wǎng)的窘境,所以對于國內(nèi)的用戶,要想正常使用docker的鏡像,就不得不配置相應的國內(nèi)鏡像。Docker鏡像管理和定制項目2鏡像是Docker的核心技術(shù)之一,是創(chuàng)建Docker容器的基礎(chǔ)模板。本項目通過3個任務介紹鏡像的基本概念和圍繞鏡像這一核心概念的具體操作,包括如何使用pull命令獲取鏡像、如何查看本地已有的鏡像信息和管理鏡像、如何創(chuàng)建用戶定制的鏡像,以及如何創(chuàng)建私有倉庫。項目二:Docker鏡像管理和定制目錄任務2.1、查看和管理Docker鏡像任務2.2、創(chuàng)建和使用私有倉庫任務2.3、創(chuàng)建定制的Docker鏡像查看和管理Docker鏡像回顧1、了解鏡像的基本概念。2、掌握鏡像的常用操作命令。3、了解倉庫的基本概念。4、掌握私有倉庫的構(gòu)建及使用方法。知識目標掌握dockercommit命令構(gòu)建鏡像的方法。掌握利用Dockerfile文件構(gòu)建鏡像的方法。能力目標掌握dockercommit命令定制鏡像的方法。掌握dockerbuild命令定制鏡像的方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會計師事務所培訓講師面試指南與答案
- 信息技術(shù)部副經(jīng)理面試題集
- 長虹集團戰(zhàn)略規(guī)劃部經(jīng)理崗位資格考試題集含答案
- 通信行業(yè)網(wǎng)絡規(guī)劃師的職責與面試題
- 2025年新型環(huán)保材料開發(fā)可行性研究報告
- 2025年生物制藥科技孵化器項目可行性研究報告
- 2025年新能源智能電網(wǎng)建設可行性研究報告
- 2025年個性化訂制家具項目可行性研究報告
- 2025年家庭智能監(jiān)控系統(tǒng)項目可行性研究報告
- 2026年華東政法大學單招職業(yè)適應性考試題庫及答案詳解1套
- 《電力市場概論》 課件 第七章 發(fā)電投資分析
- 2024年新蘇教版四年級上冊科學全冊知識點(復習資料)
- 題庫二附有答案
- 市場拓展與銷售渠道拓展方案
- 工地大門施工協(xié)議書
- 文史哲與藝術(shù)中的數(shù)學智慧樹知到期末考試答案章節(jié)答案2024年吉林師范大學
- 鐵血將軍、建軍元勛-葉挺 (1)講解
- 2023年西門子PLC知識考試題(附含答案)
- 鼻鼽(變應性鼻炎)診療方案
- 消防應急疏散和滅火演習技能培訓
- 流產(chǎn)診斷證明書
評論
0/150
提交評論