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