為什么需要碼頭工人?例如,在本地系統上用 Python 編寫的代碼可能無法在其他系統或環境中運行。這是由于您使用的庫的唯一版本。為了克服這個問題,碼頭工人來救援。
Docker 是一個用于部署應用程序的平臺即服務產品。它為用戶提供操作系統級別的虛擬化,以將應用程序與其他環境分開,并以稱為容器的軟件包形式提供軟件。容器彼此分開。它包含自己的依賴項。
要詳細了解 docker,了解虛擬機非常重要。
什么是虛擬機?
虛擬機 (VM) 是模擬物理服務器的服務器。VM 模擬在系統物理硬件上安裝應用程序的相同環境或配置。根據您的使用案例,您可以使用系統虛擬機或處理虛擬機。VM 允許您在環境中單獨執行計算機應用程序或程序。
碼頭工人和虛擬機之間的區別
與任何 VM 相比,Docker 容器將資源的抽象從硬件級別向上移動到操作系統級別。這將允許使用 Docker 容器的各種好處,如應用程序可移植性、依賴關系管理、獨立的微服務、輕松監控應用程序等。
換句話說,VM 是整個硬件服務器的抽象,而容器是操作系統內核的抽象。這種完全不同的虛擬化方法會產生更快、更輕量級的實例。
什么是容器?
Docker 容器是可執行包的標準化單元,可以輕松創建以部署應用程序或為應用程序創建新環境。它可以是操作系統容器,如Ubuntu,CentOS等,也可以是面向應用程序的容器,如CakePHP容器,Python-Flask容器等。
使用 Docker 容器,用戶可以設置特定應用程序的任意多個容器,也可以在一個容器中部署多個應用程序。Docker 用戶可以根據需要創建任意數量的容器副本,以實現高可用性或縱向擴展過程
與 VM 相比,可以在相同的硬件上運行更多容器,因為容器是輕量級的,并且使用相同的操作系統內核。
什么是 Docker Image?
Docker 鏡像是一個模板,有助于創建 Docker 容器,或者可以說是容器的鏡像。它們是包含用于創建 Docker 容器的指令集的構建基塊。Docker 鏡像是通過編寫 Docker 文件創建的,其中包含創建 Docker 鏡像的命令,并且可以通過執行 Docker 構建命令來創建它。可以通過運行 run 命令來創建 docker 容器。
碼頭工人架構
了解 Docker 架構有助于輕松理解容器化應用程序架構。Docker使用服務器-客戶端架構。架構中主要有兩個組件:Docker 守護進程和 Docker 客戶端。Docker 客戶端使用 REST API 與 docker 守護程序通信。用戶可以在同一臺服務器上設置 Docker 守護程序和 Docker 客戶端,也可以通過部署在不同的服務器上來將其分開。Docker 守護程序管理所有正在運行的容器以及構建新容器的任務。
碼頭工人守護進程:-Docker 守護程序管理 Docker 架構中的所有組件。它管理附加到容器的 Docker 映像、容器和卷。它還可以與其他 Docker 守護進程通信
碼頭工人客戶端:-用戶與 Docker 客戶端交互。當用戶運行任何 docker 命令時,Docker 客戶端會將該命令發送到 Docker 守護程序。Docker 客戶端和守護程序可以部署在同一系統上,或者用戶可以在遠程系統上部署 Docker 守護進程
碼頭工人注冊表:-Docker 映像存儲在 Docker 注冊表中。Docker Hub 是每個人都可以訪問的公共 Docker 注冊表。換句話說,Docker 注冊表是提供公共和私有注冊表的服務,您可以從中存儲和獲取映像。用戶可以登錄到 Docker Hub,并可以創建其專用或公共注冊表。用戶可以從 Docker Hub 拉取 Docker 鏡像并創建他們的容器
Docker及其應用程序的重要性
Docker 的目標是使用容器使軟件開發、應用程序部署和業務敏捷性變得簡單、快速和可靠。使用 Docker,我們可以將我們的應用程序與所有依賴項捆綁在一起,并將它們部署到任何硬件上,而不管任何不同的操作系統。將容器化應用程序遷移到不同的環境非常容易,因為它沒有外部依賴性架構。以下是 Docker 的一些應用。
在云環境中部署生產級應用程序
等效硬件上的自動縮放支持應用程序的利用率
簡單的代碼流水線管理
使用相同的生產復制環境輕松進行代碼測試
使用 Docker Hub 輕松獲取 Docker 映像
與完全不同的DevOps工具輕松集成,如bitbucket管道,git操作,AWS codebuild,AWS codedeploy,Jenkins等。
Docker 編排可自動執行容器的準備、管理、擴展和網絡的各個方面。無論您在哪里使用碼頭工人集裝箱,它都將用于任何環境。它將幫助您在完全不同的環境中部署類似的應用程序或配置,而無需對其進行更改和管理容器及其動態環境的生命周期。這些區域將手動管理的任務結合在一起。以下是可以使用 Docker 編排自動化的內容。
容器的預配、部署和刪除
如果主機存在內存或 CPU 利用率問題,則容器從一個主機移動到另一個主機
容器之間的負載平衡
高可用性和可擴展性
通過不同矩陣對容器、主機和應用程序進行運行狀況監控
在容器之間高效分配資源
容器的冗余和可用性
Docker Swarm 是一個 Docker 編排工具。它可以在 Docker 容器中打包和運行應用程序,從公共或私有存儲庫中查找現有容器映像,并在任何環境中的任何設備上部署容器。
Docker 的編排工具包括:
碼頭工人機器 :- 在虛擬機上安裝 Docker 引擎
Docker Swarm:- 在單個主機下創建多個 Docker 容器的集群
Docker Compose:- 部署多容器應用程序并管理容器之間的連接
容器化編排工具的優勢
提高可移植性:-通過幾個命令,用戶可以在其他硬件上復制其整個應用程序。易于擴展、銷毀和管理依賴項
簡單快速的部署:-可以創建新的應用程序容器以應對不斷增長的流量
提高生產力:-簡化部署和流程管理,減少依賴性
提高安全性:-應用程序與其他應用程序隔離,因此消除了其他應用程序的干擾
VOLANSYS 如何提供幫助
微服務被設計為容器化應用程序,即可以在容器化環境中運行的應用程序
我們為每個平臺定義一個 docker 基礎映像,例如 JAVA。如果發現任何漏洞,則易于維護、擴展和更新
一旦開發人員提交代碼,它就會觸發 Jenkins 上的 CI 運行。
在上圖的構建部分,Jenkins 負責構建應用程序的可執行文件以及使用它的 docker 鏡像。Jenkins 沒有任何靜態從屬,也就是說我們在 Kubernetes 集群上使用 docker 容器來運行 Jenkins 工作負載
將 docker 映像推送到工件工廠后,如果目標環境為 dev,它將觸發自動部署。對于其他環境,我們需要觸發該過程。Docker 鏡像在 Kubernetes pod 下運行
審核編輯:郭婷
-
應用程序
+關注
關注
37文章
3286瀏覽量
57793 -
虛擬機
+關注
關注
1文章
919瀏覽量
28330 -
python
+關注
關注
56文章
4802瀏覽量
84890
發布評論請先 登錄
相關推薦
評論