1. Docker概述
Docker 是一個用于開發、運輸和運行應用程式的開放平臺,Docker 使您能夠將應用程式與基礎架構分開,以便您可以快速交付軟體,使用 Docker,您可以像管理應用程式一樣管理基礎架構,通過利用 Docker 的方法來快速傳輸、測驗和部署代碼,您可以顯著減少撰寫代碼和在生產環境中運行代碼之間的延遲,
2. Docker 平臺
Docker 提供了在稱為容器的松散隔離環境中打包和運行應用程式的能力,隔離和安全性允許您在給定主機上同時運行多個容器,容器是輕量級的,包含運行應用程式所需的一切,因此您無需依賴主機上當前安裝的內容,您可以在作業時輕松共享容器,并確保與您共享的每個人都獲得以相同方式作業的相同容器,
Docker 提供工具和平臺來管理容器的生命周期:
- 使用容器開發您的應用程式及其支持組件,
- 容器成為分發和測驗應用程式的單元,
- 準備就緒后,將應用程式作為容器或編排服務部署到生產環境中,無論您的生產環境是本地資料中心、云提供商還是兩者的混合體,這都是一樣的,
3. Docker 應用場景
快速、一致地交付您的應用程式
Docker 允許開發人員使用提供應用程式和服務的本地容器在標準化環境中作業,從而簡化了開發生命周期,容器非常適合持續集成和持續交付 (CI/CD) 作業流,
考慮以下示例場景:
- 您的開發人員在本地撰寫代碼并使用 Docker 容器與同事共享他們的作業,
- 他們使用 Docker 將他們的應用程式推送到測驗環境中,并執行自動和手動測驗,
- 當開發人員發現bug時,可以在開發環境中修復,重新部署到測驗環境中進行測驗驗證,
- 測驗完成后,向客戶提供修復就像將更新后的鏡像推送到生產環境一樣簡單,
回應式部署和擴展
Docker 基于容器的平臺允許高度可移植的作業負載,Docker 容器可以在開發人員的本地筆記本電腦、資料中心的物理機或虛擬機、云提供商或混合環境中運行,
Docker 的可移植性和輕量級特性還使動態管理作業負載、根據業務需求近乎實時地擴展或拆除應用程式和服務變得容易,
在相同的硬體上運行更多的作業負載
Docker 輕巧且快速,它為基于管理程式的虛擬機提供了一種可行且經濟高效的替代方案,因此您可以使用更多的服務器容量來實作您的業務目標,Docker 非常適合高密度環境以及需要用更少的資源做更多事情的中小型部署,
4.Docker 架構
Docker 使用客戶端-服務器架構,Docker 客戶端與 Docker守護行程 對話,后者負責構建、運行和分發 Docker 容器的繁重作業,Docker 客戶端和守護行程可以 在同一系統上運行,或者您可以將 Docker 客戶端連接到遠程 Docker 守護行程,Docker 客戶端和守護行程使用 REST API 通過 UNIX 套接字或網路介面進行通信,另一個 Docker 客戶端是 Docker Compose,它允許您處理由一組容器組成的應用程式,
4.1 Docker 守護行程
Docker 守護行程 ( dockerd) 偵聽 Docker API 請求并管理 Docker 物件,例如鏡像、容器、網路和卷,守護行程還可以與其他守護行程通信以管理 Docker 服務,
4.2 Docker 客戶端
Docker 客戶端 ( docker) 是許多 Docker 用戶與 Docker 互動的主要方式,當您使用諸如docker run之類的命令時,客戶端會將這些命令發送到dockerd,由后者執行,該docker命令使用 Docker API,Docker 客戶端可以與多個守護行程通信,
4.3 Docker 桌面
Docker Desktop 是一個易于安裝的應用程式,適用于您的 Mac、Windows 或 Linux 環境,使您能夠構建和共享容器化應用程式和微服務,Docker Desktop 包括 Docker 守護程式 ( dockerd)、Docker 客戶端 ( docker)、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper,有關詳細資訊,請參閱Docker 桌面,
4.4 Docker 存盤庫
Docker存盤庫存盤 Docker 鏡像,Docker Hub 是一個任何人都可以使用的公共存盤庫,Docker 默認配置為在 Docker Hub 上查找鏡像,您甚至可以運行自己的私有存盤庫,
當您使用docker pull或docker run命令時,所需的鏡像將從您配置的存盤庫中提取,當您使用該docker push命令時,您的鏡像將被推送到您配置的存盤庫中,
4.5 Docker 物件
當您使用 Docker 時,您正在創建和使用鏡像、容器、網路、卷、插件和其他物件,本節是對其中一些物件的簡要概述,
4.5.1 鏡像
鏡像是一個只讀模板,其中包含創建 Docker 容器的說明,通常,一個鏡像基于另一個鏡像,帶有一些額外的定制,例如,您可以構建一個基于ubuntu鏡像 的鏡像,但會安裝 Apache Web 服務器和應用程式,以及運行應用程式所需的配置詳細資訊,
您可以創建自己的鏡像,也可以只使用其他人創建并在存盤庫中發布的鏡像,要構建您自己的鏡像,您可以使用簡單的語法創建一個Dockerfile ,用于定義創建和運行鏡像所需的步驟,Dockerfile 中的每條指令都會在鏡像中創建一個層,當您更改 Dockerfile 并重建鏡像時,只會重建那些已更改的層,與其他虛擬化技術相比,這是使鏡像如此輕巧、小巧和快速的部分原因,
4.5.2 容器
容器是鏡像的可運行實體,您可以使用 Docker API 或 CLI 創建、啟動、停止、移動或洗掉容器,您可以將一個容器連接到一個或多個網路,將存盤附加到它,甚至可以根據其當前狀態創建一個新鏡像,
默認情況下,容器與其他容器及其主機隔離得相對較好,您可以控制容器的網路、存盤或其他底層子系統與其他容器或主機的隔離程度,
容器由其鏡像以及您在創建或啟動它時提供給它的任何配置選項定義,當容器被移除時,任何未存盤在持久存盤中的狀態更改都會消失,
示例docker run命令
以下命令運行一個ubuntu容器,以互動方式附加到您的本地命令列會話,然后運行/bin/bash.
$ docker run -i -t ubuntu /bin/bash
當您運行此命令時,會發生以下情況(假設您使用的是默認存盤庫配置):
- 如果您在本地沒有
ubuntu鏡像,Docker 會從您配置的存盤庫中拉取它,就像您docker pull ubuntu手動運行一樣, - Docker 創建一個新容器,就像您
docker container create手動運行命令一樣, - Docker 為容器分配一個讀寫檔案系統,作為它的最后一層,這允許正在運行的容器在其本地檔案系統中創建或修改檔案和目錄,
- Docker 創建一個網路介面以將容器連接到默認網路,因為您沒有指定任何網路選項,這包括為容器分配 IP 地址,默認情況下,容器可以使用主機的網路連接連接到外部網路,
- Docker 啟動容器并執行
/bin/bash. 因為容器以互動方式運行并附加到您的終端(由于-i和-t標志),所以您可以使用鍵盤提供輸入,同時將輸出記錄到您的終端, - 當您鍵入
exit終止/bin/bash命令時,容器會停止但不會被洗掉,您可以重新啟動它或將其洗掉,
5.底層技術
Docker 是用Go 編程語言撰寫的,并利用 Linux 內核的幾個特性來提供其功能,Docker 使用一種稱為容器namespaces的技術來提供隔離的作業空間,當您運行容器時,Docker 會為該容器創建一組 namespaces,
這些命名空間提供了一隔離層,容器的每個切面都在單獨的命名空間中運行,并且其訪問僅限于該命名空間,
個人寫的小程式,有需求的可以看看:
熱門頭像|個性頭像|高清頭像|性感壁紙|美女壁紙|炫酷壁紙|省電壁紙|唯美壁紙
海量資源 應用盡有 免費下載


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/537703.html
標籤:其他
