0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Docker和容器化的興起

星星科技指導(dǎo)員 ? 來源:volansys ? 作者:Chintal Shah ? 2022-12-06 14:22 ? 次閱讀

為什么需要碼頭工人?例如,在本地系統(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)復(fù)制環(huán)境輕松進行代碼測試

使用 Docker Hub 輕松獲取 Docker 映像

與完全不同的DevOps工具輕松集成,如bitbucket管道,git操作,AWS codebuild,AWS codedeploy,Jenkins等。

什么是 Docker Orchestration?

Docker 編排可自動執(zhí)行容器的準備、管理、擴展和網(wǎng)絡(luò)的各個方面。無論您在哪里使用碼頭工人集裝箱,它都將用于任何環(huán)境。它將幫助您在完全不同的環(huán)境中部署類似的應(yīng)用程序或配置,而無需對其進行更改和管理容器及其動態(tài)環(huán)境的生命周期。這些區(qū)域?qū)⑹謩庸芾淼娜蝿?wù)結(jié)合在一起。以下是可以使用 Docker 編排自動化的內(nèi)容。

容器的預(yù)配、部署和刪除

如果主機存在內(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)勢

提高可移植性:-通過幾個命令,用戶可以在其他硬件上復(fù)制其整個應(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 下運行

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3226

    瀏覽量

    57512
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    899

    瀏覽量

    27978
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84297
收藏 人收藏

    評論

    相關(guān)推薦

    ARM平臺實現(xiàn)Docker容器技術(shù)

    及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機器上,亦可實現(xiàn)虛擬。容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-25 14:36

    ARM平臺實現(xiàn)Docker容器技術(shù)

    及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機器上,亦可實現(xiàn)虛擬容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-17 11:05

    Docker容器技術(shù)的安裝和使用

    通過Docker,開發(fā)人員可以更容易地構(gòu)建、交付和運行應(yīng)用程序,同時確保應(yīng)用程序的一致性和可移植性。它也使得應(yīng)用程序的部署更加靈活和高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他容器或主機系統(tǒng)。
    發(fā)表于 04-16 11:24 ?264次閱讀
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術(shù)的安裝和使用

    ARM平臺實現(xiàn)Docker容器技術(shù)

    ,亦可實現(xiàn)虛擬容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)。通過利用Docker的快速發(fā)布、測試和部署代碼的方法,可顯著減少產(chǎn)
    的頭像 發(fā)表于 03-07 13:48 ?684次閱讀
    ARM平臺實現(xiàn)<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術(shù)

    TLT507-Docker容器部署方法說明

    TLT507-Docker容器部署方法說明
    的頭像 發(fā)表于 01-26 09:49 ?408次閱讀
    TLT507-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    RK3568-Docker容器部署方法說明

    RK3568-Docker容器部署方法說明
    的頭像 發(fā)表于 01-22 10:12 ?1209次閱讀
    RK3568-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    docker容器有幾種狀態(tài)

    Docker 是一種流行的容器平臺,它能夠幫助開發(fā)人員將應(yīng)用程序和其依賴打包成一個獨立的容器,并且能夠在不同的環(huán)境中進行部署和運行。在 Docke
    的頭像 發(fā)表于 11-23 09:50 ?1984次閱讀

    docker核心組件有哪些

    Docker 是一種開源的容器平臺,它能夠?qū)崿F(xiàn)將應(yīng)用程序及其依賴項打包到一個可移植的容器中,從而實現(xiàn)快速、可重復(fù)、可擴展的部署和管理。Docker
    的頭像 發(fā)表于 11-23 09:47 ?1714次閱讀

    docker進入容器的方法有哪些

    Docker是一種流行的容器平臺,它能夠快速構(gòu)建、交付和運行應(yīng)用程序。在使用Docker時,我們經(jīng)常需要進入容器進行調(diào)試、管理和運行命令等
    的頭像 發(fā)表于 11-23 09:45 ?1w次閱讀

    Docker與虛擬機的區(qū)別

    的操作系統(tǒng)實例來實現(xiàn)虛擬的技術(shù)。其實現(xiàn)方式是通過Hypervisor來實現(xiàn)的。Hypervisor是一個運行在物理機上的軟件或硬件,負責管理和分配虛擬機的硬件資源。 1.2 Docker Docker是一種
    的頭像 發(fā)表于 11-23 09:37 ?8522次閱讀

    docker容器容器之間通信

    Docker是一種輕量級容器技術(shù),能夠?qū)?yīng)用程序及其依賴項封裝在一個獨立、可移植的容器中。而容器
    的頭像 發(fā)表于 11-23 09:36 ?1368次閱讀

    docker容器刪除后數(shù)據(jù)還在嗎

    Docker作為一個容器平臺,提供了輕量級的虛擬化解決方案,能夠方便地創(chuàng)建、部署和管理應(yīng)用程序。然而,對于Docker容器的數(shù)據(jù)持久性是一
    的頭像 發(fā)表于 11-23 09:32 ?1631次閱讀

    docker部署對性能的影響

    Docker 是一個流行的容器平臺,它提供了一種輕量級的虛擬技術(shù),使得應(yīng)用程序可以在獨立的容器中運行。然而,部署應(yīng)用程序到
    的頭像 發(fā)表于 11-23 09:31 ?1408次閱讀

    docker部署mysql的壞處

    Docker 是一種虛擬技術(shù),它允許開發(fā)人員在容器內(nèi)打包應(yīng)用程序及其所有依賴項,從而實現(xiàn)在不同環(huán)境中運行相同的應(yīng)用程序的能力。然而,在使用 Docker 部署 MySQL 時,也存在
    的頭像 發(fā)表于 11-23 09:29 ?1297次閱讀

    docker微服務(wù)架構(gòu)實戰(zhàn)

    隨著云計算和容器技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開發(fā)領(lǐng)域中變得越來越流行。微服務(wù)架構(gòu)將一個大型的軟件應(yīng)用拆分成多個小型的、獨立部署的服務(wù),每個服務(wù)負責獨立的業(yè)務(wù)功能。其中,Docker作為一個流行
    的頭像 發(fā)表于 11-23 09:26 ?585次閱讀