




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Docker方案容器基礎描述典型容器方案完成容器的基礎實驗教學目標Docker概述Docker方案目錄Docker是什么使用最廣泛的開源容器引擎一種操作系統級的虛擬化技術依賴于Linux內核特性:Namespace(資源隔離)和Cgroups(資源限制)一個簡單的應用程序打包工具Docker設計目標提供簡單的應用程序打包工具開發人員和運維人員職責邏輯分離多環境保持一致性Docker簡介Docker引擎的歷程Docker基本組成實驗目標請完成Docker主機的安裝請完成Docker服務的啟動和開機啟動等基本配置查看Docker服務狀態實驗:Docker主機的安裝應用程序打包和發布應用程序隔離持續集成部署微服務快速搭建測試環境提供PaaS產品(平臺即服務)Docker應用場景Docker概述Docker方案目錄首先需要先從鏡像倉庫服務中拉取鏡像。常見的鏡像倉庫服務是DockerHub,但是也存在其他鏡像倉庫服務。拉取操作會將鏡像下載到本地Docker主機,可以使用該鏡像啟動一個或者多個容器。鏡像由多個層組成,每層疊加之后,從外部看來就如一個獨立的對象。鏡像內部是一個精簡的操作系統(OS),同時還包含應用運行所必須的文件和依賴包。因為容器的設計初衷就是快速和小巧,所以鏡像通常都比較小。容器和鏡像鏡像通常比較小容器目的就是運行應用或者服務,這意味著容器的鏡像中必須包含應用/服務運行所必需的操作系統和應用文件。但是,容器又追求快速和小巧,這意味著構建鏡像的時候通常需要裁剪掉不必要的部分,保持較小的體積。例如,Docker鏡像通常不會包含6個不同的Shell讓讀者選擇——通常Docker鏡像中只有一個精簡的Shell,甚至沒有Shell。鏡像中還不包含內核——容器都是共享所在Docker主機的內核。所以有時會說容器僅包含必要的操作系統(通常只有操作系統文件和文件系統對象)。Docker官方鏡像AlpineLinux大約只有4MB,可以說是Docker鏡像小巧這一特點的比較典型的例子。Windows鏡像要比Linux鏡像大一些,這與WindowsOS工作原理相關。容器鏡像Dockerimagepull是下載鏡像的命令。鏡像從遠程鏡像倉庫服務的倉庫中下載。默認情況下,鏡像會從DockerHub的倉庫中拉取。Dockerimagepullalpine:latest命令會從DockerHub的alpine倉庫中拉取標簽為latest的鏡像。可以使用以下命令檢查Docker主機的本地倉庫中是否包含鏡像。$DockerimagelsREPOSITORYTAGIMAGEIDCREATEDSIZE將鏡像取到Docker主機本地的操作是拉取。所以,如果讀者想在Docker主機使用最新的Ubuntu鏡像,需要拉取它。通過下面的命令可以將鏡像拉取到本地,并觀察其大小。容器鏡像的獲取只需要給出鏡像的名字和標簽,就能在官方倉庫中定位一個鏡像(采用“:”分隔)。從官方倉庫拉取鏡像時,Dockerimagepull命令的格式如下。Dockerimagepull<repository>:<tag>在之前的Linux示例中,通過下面的兩條命令完成Alpine和Ubuntu鏡像的拉取。Dockerimagepullalpine:latestDockerimagepullubuntu:latest這兩條命令從alpine和ubuntu倉庫拉取了標有“latest”標簽的鏡像。下面來介紹一下如何從官方倉庫拉取不同的鏡像。$Dockerimagepullmongo:3.3.11$Dockerimagepullredis:latest$Dockerimagepullalpine鏡像命名和標簽Docker鏡像存儲在鏡像倉庫服務(ImageRegistry)當中。Docker客戶端的鏡像倉庫服務是可配置的,默認使用DockerHub。鏡像倉庫服務包含多個鏡像倉庫(ImageRepository)。同樣,一個鏡像倉庫中可以包含多個鏡像。可能這聽起來讓人有些迷惑,所以下圖展示了包含3個鏡像倉庫的鏡像倉庫服務,其中每個鏡像倉庫都包含一個或多個鏡像。鏡像倉庫服務下面介紹幾種鏡像中常用的操作命令。Dockerimagepull是下載鏡像的命令。鏡像從遠程鏡像倉庫服務的倉庫中下載。Dockerimagels列出了本地Docker主機上存儲的鏡像。可以通過--digests參數來查看鏡像的SHA256簽名。Dockerimageinspect命令非常有用!該命令完美展示了鏡像的細節,包括鏡像層數據和元數據。Dockerimagerm用于刪除鏡像。Docker鏡像常用命令實驗目標請下載Nginx不同版本的鏡像。請查看Nginx不同版本鏡像的大小。請搜索Apache鏡像。請將本地鏡像進行重命名。請將重命名后的鏡像推送至Dockerhub。請刪除本地鏡像。實驗:容器鏡像的獲取容器是鏡像的運行時實例。正如從虛擬機模板上啟動VM一樣,用戶也同樣可以從單個鏡像上啟動一個或多個容器。虛擬機和容器最大的區別是容器更快并且更輕量級——與虛擬機運行在完整的操作系統之上相比,容器會共享其所在主機的操作系統/內核。容器容器和虛擬機都依賴于宿主機才能運行。宿主機可以是筆記本,是數據中心的物理服務器,也可以是公有云的某個實例。在下面的示例中,假設宿主機是一臺需要運行4個業務應用的物理服務器。在虛擬機模型中,首先要開啟物理機并啟動Hypervisor引導程序。一旦Hypervisor啟動,就會占有機器上的全部物理資源,如CPU、RAM、存儲和NIC。Hypervisor接下來就會將這些物理資源劃分為虛擬資源,并且看起來與真實物理資源完全一致。然后Hypervisor會將這些資源打包進一個叫作虛擬機(VM)的軟件結構當中。這樣用戶就可以使用這些虛擬機,并在其中安裝操作系統和應用。前面提到需要在物理機上運行4個應用,所以在Hypervisor之上需要創建4個虛擬機并安裝4個操作系統,然后安裝4個應用。容器和虛擬機(1)而容器模型則略有不同。服務器啟動之后,所選擇的操作系統會啟動。在Docker世界中可以選擇Linux,或者內核支持內核中的容器原語的新版本Windows。與虛擬機模型相同,OS也占用了全部硬件資源。在OS層之上,需要安裝容器引擎(如Docker)。容器引擎可以獲取系統資源,比如進程樹、文件系統以及網絡棧,接著將資源分割為安全的互相隔離的資源結構,稱之為容器。每個容器看起來就像一個真實的操作系統,在其內部可以運行應用。按照前面的假設,需要在物理機上運行4個應用。因此,需要劃分出4個容器并在每個容器中運行一個應用。容器和虛擬機(2)下面介紹一些Docker容器中常用的命令。DockercontainerrunDockercontainerlsDockercontainerexecDockercontainerstopDockercontainerstartDockercontainerrmDockercontainerinspectDocker容器常用命令實驗目標請下載任一軟件的鏡像。請基于此鏡像創建兩個容器。請刪除容器的鏡像,查看對應的輸出。請進入容器系統,在任一目錄下創建文件后,退出容器,并將此容器提交為鏡像。請刪除容器和容器依賴的鏡像。實驗:容器生命周期管理在頂層設計中,Docker網絡架構由3個主要部分構成:CNM、Libnetwork和驅動。CNM是設計標準。在CNM中,規定了Docker網絡架構的基礎組成要素。Libnetwork是CNM的具體實現,并且被Docker采用,Libnetwork通過Go語言編寫,并實現了CNM中列舉的核心組件。驅動通過實現特定網絡拓撲的方式來拓展該模型的能力。Docker容器網絡方案Docker容器的四種網絡模式:bridge橋接模式Docker容器網絡(1)Docker容器的四種網絡模式:host模式Docker容器網絡(2)Docker容器的四種網絡模式:container模式Docker容器網絡(3)Docker容器的四種網絡模式:none模式Docker容器網絡(4)實驗目標請查看Docker容器默認網絡類型。請分別創建四種網絡類型的Docker容器實例。實驗:容器網絡從容器構建鏡像創建一個容器,比如使用tomcat:latest鏡像創建一個tomcat-test容器修改tomcat-test容器的文件系統,比如修改tomcat的server.xml文件中的默認端口使用commit命令提交鏡像容器鏡像的構建方式(1)使用Dockerfile構建鏡像編寫Dockerfile文件使用build命令構建鏡像構建方式對比:容器鏡像的構建者可以任意修改容器的文件系統后進行發布,這種修改對于鏡像使用者來說是不透明的。容器鏡像的大小不可控。容器鏡像依賴的父鏡像變化時,容器鏡像必須進行重新構建。Dockerfile鏡像是完全透明的,所有用于構建鏡像的指令都可以通過Dockerfile看到。Dockerfile鏡像需要修改時,可以通過修改Dockerfile中的指令,再重新構建生成,沒有任何問題。Dockerfile可以在GitHub等源碼管理網站上進行托管,DockerHub自動關聯源碼進行構建。推薦使用DockerFile構建容器鏡像。容器鏡像的構建方式(2)Dockerfile由一行行命令語句組成,并支持以#開頭的注釋行。例如:DockerFile示例#Testweb-apptousewithPluralsightcoursesandDockerDeepDivebook#Linuxx64FROMalpineLABELmaintainer="nigelpoulton@"#InstallNodeandNPM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60335-2-31:2024 EXV-CMV EN Household and similar electrical appliances - Safety - Part 2-31: Particular requirements for range hoods and other cooking fume extractors
- 電視節目制作流程及質量控制標準
- 儀表專業考試試題及答案
- 六一互動活動方案
- 六一兒童超市節活動方案
- 六一化妝觀摩活動方案
- 六一幼兒園健康活動方案
- 六一攤位活動方案
- 六一未成年人活動方案
- 六一活動古箏活動方案
- 2025-2030中國食物病原體檢測行業市場發展趨勢與前景展望戰略分析研究報告
- 托里縣鐵廠溝鎮工業固廢垃圾填埋場項目環境影響報告書
- 中草藥種植技術課件
- T/CHES 63-2022活塞式調流調壓閥技術導則
- T/CCMA 0048-2017二手工程機械評估師
- 傳染病防治法試題(答案)
- 家居建材聯盟協議書
- 2024北京海淀區六年級(下)期末語文試題及答案
- 無人機航線規劃與飛行策略試題及答案
- 2025年全國保密教育線上培訓考試試題庫帶答案(典型題)含答案詳解
- 亞歷山大大帝傳
評論
0/150
提交評論