日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

用了這么多年Docker,殊不知你還有這么多彎彎繞!

來(lái)源: 責(zé)編: 時(shí)間:2023-11-13 17:18:41 340觀看
導(dǎo)讀單體應(yīng)用拆分成微服務(wù)后,能夠?qū)崿F(xiàn)快速開(kāi)發(fā)迭代,但因?yàn)樾》?wù)太多,導(dǎo)致測(cè)試和部署的成本提高。單體應(yīng)用中,將Spring Boot工程打包成一個(gè)war包,然后部署在Linux服務(wù)器的Tomcat中就可以了。拆分成微服務(wù)后,修改一個(gè)需求,可能會(huì)

Hd328資訊網(wǎng)——每日最新資訊28at.com

單體應(yīng)用拆分成微服務(wù)后,能夠?qū)崿F(xiàn)快速開(kāi)發(fā)迭代,但因?yàn)樾》?wù)太多,導(dǎo)致測(cè)試和部署的成本提高。Hd328資訊網(wǎng)——每日最新資訊28at.com

單體應(yīng)用中,將Spring Boot工程打包成一個(gè)war包,然后部署在Linux服務(wù)器的Tomcat中就可以了。Hd328資訊網(wǎng)——每日最新資訊28at.com

拆分成微服務(wù)后,修改一個(gè)需求,可能會(huì)涉及多個(gè)微服務(wù),這個(gè)時(shí)候,被修改過(guò)的代碼都需要重新測(cè)試、打包、部署、上線發(fā)布。無(wú)形之中,給現(xiàn)場(chǎng)運(yùn)維人員增加了成倍的工作壓力。Hd328資訊網(wǎng)——每日最新資訊28at.com

微服務(wù)通常會(huì)在共有云上創(chuàng)建ECS進(jìn)行擴(kuò)容,ECS通常只包含了基本的操作系統(tǒng)環(huán)境,沒(méi)有包含運(yùn)行java的環(huán)境jdk,就需要在ECS上安裝jdk,而且每個(gè)服務(wù)依賴的jdk版本可能也不會(huì)相同,一般情況下,都會(huì)采用jdk8,但有些喜愛(ài)前言技術(shù)的項(xiàng)目經(jīng)理,可能要試一下jdk21,畢竟也是一個(gè)長(zhǎng)期穩(wěn)定的大版本。Hd328資訊網(wǎng)——每日最新資訊28at.com

而容器技術(shù)可以解決上面的兩個(gè)問(wèn)題(代碼部署難、缺環(huán)境)。Hd328資訊網(wǎng)——每日最新資訊28at.com

時(shí)下容器技術(shù)最火的當(dāng)屬Docker,很多小伙伴也用了多年,只知道它是容器技術(shù),可以將程序和依賴打到Docker里,然后發(fā)布在Linux服務(wù)器中,就完成了程序的部署,一次構(gòu)建、到處運(yùn)行,很牛逼,至于其它的,就不知道了,也不想知道~Hd328資訊網(wǎng)——每日最新資訊28at.com

一、神之容器 Docker

Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker屬于Linux容器的一種封裝,提供簡(jiǎn)單易用的容器使用接口。它是目前最流行的Linux容器解決方案。Hd328資訊網(wǎng)——每日最新資訊28at.com

一個(gè)完整的Docker由以下七個(gè)部分組成:

  • Docker Client 客戶端。
  • Docker Daemon 守護(hù)進(jìn)程,提供Docker Server,用于接收Docker Client的請(qǐng)求,Docker Server 通過(guò)路由Router與分發(fā)調(diào)度,找到相應(yīng)的 Handler 來(lái)執(zhí)行請(qǐng)求。
  • Docker Image 鏡像,包含Distribution(分發(fā))、Layer(層)、Image(鏡像)、Registry(注冊(cè)中心)、Reference(引用)。
  • Docker Driver 驅(qū)動(dòng),Docker架構(gòu)中的驅(qū)動(dòng)模塊,它主要通過(guò)與Docker守護(hù)進(jìn)程進(jìn)行交互,實(shí)現(xiàn)對(duì)Docker容器執(zhí)行環(huán)境的定制和管理。
  • Docker Graph 內(nèi)部數(shù)據(jù)庫(kù),Docker Graph是Docker中的一種數(shù)據(jù)結(jié)構(gòu),用于記錄和跟蹤Docker鏡像和容器之間的關(guān)系;
  • Libcontainer 函數(shù)庫(kù),Libcontainer是Docker的底層容器管理庫(kù),它提供了一組接口和函數(shù),用于創(chuàng)建和管理容器。Libcontainer直接與內(nèi)核交互,負(fù)責(zé)容器的命名空間、cgroup、網(wǎng)絡(luò)設(shè)備等底層操作。
  • Docker Container 容器,Docker Container是Docker中的容器實(shí)例,它是通過(guò)Driver和Libcontainer共同協(xié)作創(chuàng)建出來(lái)的。Driver提供了容器的運(yùn)行環(huán)境定制,而Libcontainer則負(fù)責(zé)容器的具體創(chuàng)建和管理操作。

Hd328資訊網(wǎng)——每日最新資訊28at.com

二、Docker架構(gòu)圖

  • 用戶使用 Docker Client(客戶端) 與 Docker Daemon 建立通信,并發(fā)送請(qǐng)求給后者,客戶端和守護(hù)程序之間通過(guò)REST API進(jìn)行通信,可以使用UNIX套接字或網(wǎng)絡(luò)接口;
  • Docker Daemon(后臺(tái)守護(hù)進(jìn)程)提供Docker Server,用于接收Docker Client的請(qǐng)求,Docker Server 通過(guò)路由Router與分發(fā)調(diào)度,找到相應(yīng)的 Handler 來(lái)執(zhí)行請(qǐng)求,Docker Daemon提供Docker Engine,Engine是Docker 架構(gòu)中的運(yùn)行引擎,在Docker Engine中,一個(gè)Job可以被認(rèn)為是內(nèi)部最基本的工作執(zhí)行單元。Docker可以做的每一項(xiàng)工作,都可以抽象為一個(gè)Job。例如,在容器內(nèi)部運(yùn)行一個(gè)進(jìn)程,這是一個(gè)Job;創(chuàng)建一個(gè)新的容器,這也是一個(gè)Job。
  • Docker Image 鏡像,包含Distribution(分發(fā))、Layer(層)、Image(鏡像)、Registry(注冊(cè)中心)、Reference(引用)。
  • Docker Driver 驅(qū)動(dòng),Docker架構(gòu)中的驅(qū)動(dòng)模塊,它主要通過(guò)與Docker守護(hù)進(jìn)程進(jìn)行交互,實(shí)現(xiàn)對(duì)Docker容器執(zhí)行環(huán)境的定制和管理;
  • 當(dāng)需要容器鏡像時(shí),則從 Registry(注冊(cè)中心) 中下載鏡像,并通過(guò)鏡像管理驅(qū)動(dòng) Graphdriver 將下載鏡像以 Graph 的形式存儲(chǔ);
  • Docker Graph 內(nèi)部數(shù)據(jù)庫(kù),Docker Graph是Docker中的一種數(shù)據(jù)結(jié)構(gòu),用于記錄和跟蹤Docker鏡像和容器之間的關(guān)系;
  • 一個(gè) Repository 表示某類鏡像的倉(cāng)庫(kù),同一個(gè) Repository 內(nèi)的鏡像用 Tag 來(lái)區(qū)分,一個(gè) Registry 包含多個(gè)Repository,一個(gè) Repository 包含同類型的多個(gè) Image,并存儲(chǔ)著每一個(gè)容器鏡像的具體信息;GraphDB是一個(gè)基于SQLite的小型圖數(shù)據(jù)庫(kù),記錄容器鏡像之間的關(guān)系;
  • rootfs是Docker容器的根文件系統(tǒng),它位于bootfs之上,表現(xiàn)為Docker容器的根目錄,包含基本的文件和目錄。在Docker中,rootfs由內(nèi)核掛載為“只讀”模式,而后通過(guò)“聯(lián)合掛載”技術(shù)額外掛載一個(gè)“可寫”層;
  • 通過(guò) Networkdriver 完成Docker容器網(wǎng)絡(luò)環(huán)境的配置,其中包括Docker啟動(dòng)時(shí)為Docker環(huán)境創(chuàng)建網(wǎng)橋等功能;
  • Docker Execdriver是Docker容器的執(zhí)行驅(qū)動(dòng),負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等;
  • Libcontainer是Docker的底層容器管理庫(kù),它提供了一組接口和函數(shù),用于創(chuàng)建和管理容器。Libcontainer直接與內(nèi)核交互,負(fù)責(zé)容器的命名空間、cgroup、網(wǎng)絡(luò)設(shè)備等底層操作;
  • Docker Container是Docker中的容器實(shí)例,它是通過(guò)Driver和Libcontainer共同協(xié)作創(chuàng)建出來(lái)的。Driver提供了容器的運(yùn)行環(huán)境定制,而Libcontainer則負(fù)責(zé)容器的具體創(chuàng)建和管理操作。Docker Container是Docker架構(gòu)中服務(wù)交付的最終體現(xiàn)形式。實(shí)現(xiàn)“一次構(gòu)建,到處運(yùn)行”的目標(biāo),大大提高了應(yīng)用程序的部署效率和可移植性。

1、Docker Client 客戶端

Docker Client是Docker的客戶端工具,也被稱為Docker命令行界面(CLI)。它是用戶與Docker平臺(tái)進(jìn)行交互的主要方式。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker Client 的主要作用如下:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • 用戶交互界面:Docker Client提供了用戶友好的命令行交互界面,用戶可以通過(guò)輸入命令來(lái)執(zhí)行各種Docker操作,例如創(chuàng)建容器、啟動(dòng)容器、停止容器、構(gòu)建鏡像等。
  • 容器管理:通過(guò)Docker Client,用戶可以方便地管理Docker容器??梢詣?chuàng)建新的容器、啟動(dòng)、停止、重啟容器,并且還可以查看容器的日志、狀態(tài)等信息。
  • 鏡像管理:Docker Client也允許用戶管理Docker鏡像。用戶可以搜索、下載、構(gòu)建、刪除鏡像等操作,以滿足應(yīng)用程序部署的需求。
  • 資源配置:用戶可以通過(guò)Docker Client配置容器的運(yùn)行資源,例如CPU、內(nèi)存等。這樣可以確保容器在運(yùn)行時(shí)具有合適的資源配置。
  • 網(wǎng)絡(luò)通信:Docker Client可以與Docker Daemon進(jìn)行通信,發(fā)送請(qǐng)求并接收響應(yīng)。它使用REST API或其他通信協(xié)議與Docker Daemon進(jìn)行交互,從而實(shí)現(xiàn)對(duì)Docker容器的遠(yuǎn)程管理。

Docker Client是用戶與Docker平臺(tái)進(jìn)行交互的重要工具。它提供了命令行界面,讓用戶能夠方便地管理Docker容器和鏡像,并進(jìn)行資源配置和網(wǎng)絡(luò)通信等操作。Hd328資訊網(wǎng)——每日最新資訊28at.com

2、Docker Daemon 守護(hù)進(jìn)程

Docker Daemon是Docker的守護(hù)進(jìn)程,它是Docker平臺(tái)的后臺(tái)服務(wù)組件,充當(dāng)服務(wù)器角色。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker Daemon 的主要作用如下:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • 容器管理:Docker Daemon負(fù)責(zé)創(chuàng)建、啟動(dòng)、停止、刪除和管理Docker容器。它接收來(lái)自Docker客戶端的請(qǐng)求,并根據(jù)請(qǐng)求執(zhí)行相應(yīng)的容器管理操作。
  • 鏡像管理:Docker Daemon也管理Docker鏡像。它可以下載、上傳、構(gòu)建和刪除鏡像,并管理鏡像的版本控制和安全性。
  • 網(wǎng)絡(luò)資源管理:Docker Daemon負(fù)責(zé)創(chuàng)建和管理Docker容器的網(wǎng)絡(luò)環(huán)境。它配置和管理容器的網(wǎng)絡(luò)設(shè)置,確保容器之間的通信和互相訪問(wèn)。
  • 數(shù)據(jù)卷管理:Docker Daemon還管理容器的數(shù)據(jù)卷,用于持久化存儲(chǔ)容器中的數(shù)據(jù),保證數(shù)據(jù)的可靠性和持久性。

Docker Daemon是Docker平臺(tái)的核心組件,提供容器、鏡像、網(wǎng)絡(luò)和數(shù)據(jù)卷的管理功能。它扮演著守護(hù)進(jìn)程的角色,確保Docker平臺(tái)的正常運(yùn)行和管理。Hd328資訊網(wǎng)——每日最新資訊28at.com

3、鏡像(Image)

在Docker鏡像中,Distribution、Layer、Image、Registry和Reference各自扮演了重要角色。Hd328資訊網(wǎng)——每日最新資訊28at.com

  • Distribution(分發(fā)):通常涉及到Docker鏡像的分發(fā)和運(yùn)輸。Docker鏡像可以通過(guò)不同的方式進(jìn)行分發(fā),例如直接從Registry下載,或者通過(guò)特定的工具導(dǎo)入和導(dǎo)出;
  • Layer(層):Docker鏡像由多個(gè)layer層組成,每層都是一個(gè)只讀的文件系統(tǒng)。這種分層設(shè)計(jì)可以實(shí)現(xiàn)共享和復(fù)用,提高效率。當(dāng)鏡像中的文件發(fā)生變化時(shí),Docker只會(huì)下載發(fā)生變化的層,而不是整體鏡像,節(jié)省了時(shí)間和寬帶;
  • Image(鏡像):鏡像是Docker的核心,它是運(yùn)行容器的基礎(chǔ)。鏡像包含了運(yùn)行應(yīng)用程序的所有文件和依賴,是一個(gè)只讀模板,可以通過(guò)鏡像創(chuàng)建新的容器實(shí)例;
  • Registry(注冊(cè)中心):Registry是存儲(chǔ)和管理Docker鏡像的服務(wù)器。它是用戶上傳、下載、管理Docker鏡像的地方。例如Dokcer Hub就是一個(gè)公共的Registry;
  • Reference(引用):引用指的是Docker鏡像的一種標(biāo)識(shí),通過(guò)引用,用戶可以指定需要操作的特定鏡像;

4、Docker Driver 驅(qū)動(dòng)模塊

Docker Driver是Docker的驅(qū)動(dòng)模塊,主要負(fù)責(zé)驅(qū)動(dòng)Docker容器的運(yùn)行。它通過(guò)與操作系統(tǒng)的交互,實(shí)現(xiàn)對(duì)Docker容器的創(chuàng)建、啟動(dòng)、運(yùn)行和管理等操作。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker Driver 的主要作用如下:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • 容器創(chuàng)建與啟動(dòng):Driver負(fù)責(zé)根據(jù)用戶的指令創(chuàng)建新的容器實(shí)例,并啟動(dòng)它們。它會(huì)與底層操作系統(tǒng)交互,設(shè)置好容器運(yùn)行所需的各種環(huán)境和資源。
  • 容器運(yùn)行環(huán)境定制:Driver可以根據(jù)用戶的需求定制容器的運(yùn)行環(huán)境。這包括網(wǎng)絡(luò)配置、存儲(chǔ)掛載、進(jìn)程管理等,確保容器在特定的環(huán)境中按照預(yù)期運(yùn)行。
  • 容器狀態(tài)管理:Driver維護(hù)著容器的狀態(tài)信息,包括容器的運(yùn)行狀態(tài)、資源使用情況等。它可以提供容器狀態(tài)的查詢和監(jiān)控功能,讓用戶了解容器的實(shí)時(shí)狀態(tài)。
  • 容器資源管理:Driver還負(fù)責(zé)管理容器的資源,如CPU、內(nèi)存、磁盤空間等。它可以對(duì)容器使用的資源進(jìn)行限制和控制,確保容器不會(huì)超出預(yù)設(shè)的資源限制。

Docker Driver是Docker中非常重要的組件,它通過(guò)與操作系統(tǒng)的交互,實(shí)現(xiàn)了Docker容器的創(chuàng)建、運(yùn)行和管理等功能,為Docker平臺(tái)的正常運(yùn)行提供了底層支持。Hd328資訊網(wǎng)——每日最新資訊28at.com

5、Docker Graph內(nèi)部數(shù)據(jù)庫(kù)

Docker Graph是Docker中的一種數(shù)據(jù)結(jié)構(gòu),用于記錄和跟蹤Docker鏡像和容器之間的關(guān)系。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker Graph 的主要作用如下:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • 關(guān)系追蹤:Docker Graph能夠記錄容器和鏡像之間的關(guān)系,包括哪個(gè)鏡像被用來(lái)創(chuàng)建哪個(gè)容器,容器之間是否存在依賴關(guān)系等。這種關(guān)系追蹤使得用戶能夠更好地理解和管理容器與鏡像之間的關(guān)聯(lián)。
  • 資源管理:通過(guò)Docker Graph,用戶可以更方便地進(jìn)行資源管理,例如查找和刪除不再需要的鏡像和容器。它提供了一種全局視圖,幫助用戶了解整個(gè)Docker環(huán)境中的資源利用情況。
  • 性能優(yōu)化:Docker Graph可以提供一些性能方面的優(yōu)化。通過(guò)分析和理解Graph中的關(guān)系,Docker可以智能地選擇最合適的鏡像層和緩存策略,從而提高鏡像構(gòu)建和容器啟動(dòng)的速度。

Docker Graph在Docker的較新版本中可能已經(jīng)被替代或集成到其他組件中,因此具體實(shí)現(xiàn)和用法可能會(huì)因版本而異。Hd328資訊網(wǎng)——每日最新資訊28at.com

6、Docker Libcontainer函數(shù)庫(kù)

Docker Libcontainer函數(shù)庫(kù)中包含:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • namespaces:namespaces技術(shù)用于實(shí)現(xiàn)Docker容器之間的隔離。通過(guò)namespaces,可以實(shí)現(xiàn)網(wǎng)絡(luò)、通信、文件、權(quán)限等對(duì)象的隔離,確保容器在獨(dú)立的環(huán)境中運(yùn)行,并且相互之間不會(huì)產(chǎn)生干擾。這種隔離機(jī)制有助于提高容器的安全性和穩(wěn)定性。
  • Cgroups:Cgroups(Control Groups)用于對(duì)Docker容器所占用的系統(tǒng)資源進(jìn)行限制和管理。它可以控制容器的CPU、內(nèi)存、磁盤I/O等資源的使用量,確保容器不會(huì)消耗過(guò)多的資源,從而防止系統(tǒng)過(guò)載或資源耗盡。
  • netlink:netlink是Linux內(nèi)核提供的一種用于內(nèi)核與用戶空間進(jìn)程之間通信的機(jī)制。在Docker Libcontainer中,netlink主要用于完成Docker容器的網(wǎng)絡(luò)環(huán)境配置和創(chuàng)建。它使得容器能夠與網(wǎng)絡(luò)進(jìn)行交互,實(shí)現(xiàn)網(wǎng)絡(luò)通信和功能。
  • capabilities:capabilities機(jī)制用于在Docker容器內(nèi)部對(duì)進(jìn)程的權(quán)限進(jìn)行更精細(xì)的控制。它將超級(jí)用戶root的權(quán)限分割成各種不同的capabilities權(quán)限,允許根據(jù)需求將特定的權(quán)限授予容器內(nèi)的進(jìn)程。這種權(quán)限管理方式增強(qiáng)了容器的安全性,防止?jié)撛诘陌踩┒春凸簟?/li>

這些組件和技術(shù)在Libcontainer中協(xié)作,共同實(shí)現(xiàn)了Docker容器的隔離、資源管理、網(wǎng)絡(luò)通信和權(quán)限控制等功能,為Docker平臺(tái)的穩(wěn)定性和安全性提供了重要支持。Hd328資訊網(wǎng)——每日最新資訊28at.com

7、Docker Container 容器實(shí)例

Docker Container是Docker中的容器實(shí)例,它是通過(guò)Driver和Libcontainer共同協(xié)作創(chuàng)建出來(lái)的。Driver提供了容器的運(yùn)行環(huán)境定制,而Libcontainer則負(fù)責(zé)容器的具體創(chuàng)建和管理操作。Docker Container是Docker架構(gòu)中服務(wù)交付的最終體現(xiàn)形式。實(shí)現(xiàn)“一次構(gòu)建,到處運(yùn)行”的目標(biāo),大大提高了應(yīng)用程序的部署效率和可移植性。Hd328資訊網(wǎng)——每日最新資訊28at.com

Docker Container 的主要作用如下:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • 應(yīng)用程序的隔離運(yùn)行:Docker Container提供了輕量級(jí)、獨(dú)立的運(yùn)行環(huán)境,使得應(yīng)用程序可以在隔離的容器中運(yùn)行,避免不同應(yīng)用之間的干擾和沖突;
  • 環(huán)境一致性:因?yàn)镈ocker Container包含了應(yīng)用程序及其依賴項(xiàng),所以可以確保在任何環(huán)境中都能以相同的方式運(yùn)行,提高了應(yīng)用的可移植性和穩(wěn)定性;
  • 資源控制和隔離:Docker Container允許對(duì)每個(gè)容器進(jìn)行資源限制,例如CPU、內(nèi)存等。這樣可以防止某個(gè)容器消耗過(guò)多資源,確保系統(tǒng)的穩(wěn)定運(yùn)行;
  • 快速部署和擴(kuò)展:Docker Container的輕量級(jí)特性使得它可以快速啟動(dòng)和停止,非常適合于云計(jì)算和微服務(wù)架構(gòu)中的快速部署和橫向擴(kuò)展;
  • 版本控制和回滾:通過(guò)標(biāo)記和版本控制,可以輕松管理和回滾容器的版本,提高了應(yīng)用程序的版本管理和部署的靈活性;
  • 安全性增強(qiáng):Docker Container提供了隔離的運(yùn)行環(huán)境,可以減少系統(tǒng)漏洞和攻擊面,提高應(yīng)用程序的安全性。

Docker Container是Docker技術(shù)的核心組件之一,它提供了輕量級(jí)、隔離的運(yùn)行環(huán)境,用于部署、運(yùn)行和管理應(yīng)用程序。它的出現(xiàn)改變了傳統(tǒng)應(yīng)用部署和運(yùn)維的方式,提高了開(kāi)發(fā)、測(cè)試、運(yùn)維的效率和質(zhì)量。Hd328資訊網(wǎng)——每日最新資訊28at.com

三、Docker安裝

1、卸載Docker

sudo yum remove docker /                  docker-client /                  docker-client-latest /                  docker-common /                  docker-latest /                  docker-latest-logrotate /                  docker-logrotate /                  docker-engine

2、需要的安裝包

yum install -y yum-utils

3、設(shè)置鏡像倉(cāng)庫(kù)

yum-config-manager /    --add-repo /    https://download.docker.com/linux/centos/docker-ce.repo

用國(guó)內(nèi)的。Hd328資訊網(wǎng)——每日最新資訊28at.com

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新軟件包索引。Hd328資訊網(wǎng)——每日最新資訊28at.com

yum mackecache fast

4、安裝Docker相關(guān)

ce社區(qū)版,ee企業(yè)版,推薦安裝企業(yè)版。Hd328資訊網(wǎng)——每日最新資訊28at.com

yum install docker-ce docker-ce-cli containerd.io。Hd328資訊網(wǎng)——每日最新資訊28at.com

Hd328資訊網(wǎng)——每日最新資訊28at.com

5、啟動(dòng)Docker

systemctl start docker

6、使用docker version查看版本

Hd328資訊網(wǎng)——每日最新資訊28at.com

7、啟動(dòng)hello world鏡像

docker run hello-world

Hd328資訊網(wǎng)——每日最新資訊28at.com

8、卸載

yum remove docker-ce docker-ce-cli containerd.iorm -rf /var/lib/dockerrm -rf /var/lib/containerd

四、run的流程和docker原理

1、run的流程

Hd328資訊網(wǎng)——每日最新資訊28at.com

2、與傳統(tǒng)虛擬化方式對(duì)比

這就是Docker為何比虛擬化更快的原因,Docker有著比虛擬機(jī)更少的抽象層,docker利用的是宿主機(jī)的內(nèi)核,VM需要的是Guest OS。Hd328資訊網(wǎng)——每日最新資訊28at.com

Hd328資訊網(wǎng)——每日最新資訊28at.com

五、Docker鏡像常用命令

1、基本命令

docker versiondocker infodocker 命令 --help #萬(wàn)能命令

docker images。Hd328資訊網(wǎng)——每日最新資訊28at.com

Hd328資訊網(wǎng)——每日最新資訊28at.com

解釋:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • REPOSITORY:鏡像的倉(cāng)庫(kù)源。
  • TAG:鏡像的標(biāo)簽。
  • IMAGE ID:鏡像的ID。
  • CREATE:鏡像的創(chuàng)建時(shí)間。
  • SIZE:鏡像的大小。

可選項(xiàng)Hd328資訊網(wǎng)——每日最新資訊28at.com

  • -a:列出全部的鏡像。
  • -q:只顯示鏡像的ID。

2、搜索鏡像

docker search。Hd328資訊網(wǎng)——每日最新資訊28at.com

可選項(xiàng)Hd328資訊網(wǎng)——每日最新資訊28at.com

--filter-STATUS-3000 #搜索大于3000的。Hd328資訊網(wǎng)——每日最新資訊28at.com

3、下載鏡像

指定版本下載。Hd328資訊網(wǎng)——每日最新資訊28at.com

docker pull 鏡像名[:tag]。Hd328資訊網(wǎng)——每日最新資訊28at.com

Hd328資訊網(wǎng)——每日最新資訊28at.com

4、刪除鏡像

docker rmi -f 鏡像id。Hd328資訊網(wǎng)——每日最新資訊28at.com

六、docker容器常用命令

1、下載容器

docker pull centos。Hd328資訊網(wǎng)——每日最新資訊28at.com

2、docker run [可選參數(shù)] image

參數(shù)說(shuō)明:Hd328資訊網(wǎng)——每日最新資訊28at.com

  • --name:容器名稱。
  • -d:后臺(tái)方式運(yùn)行。
  • -it:使用交互方式運(yùn)行,進(jìn)入容器查看內(nèi)容(例如:docker run -it centos /bin/bash)。
  • -p :指定容器的端口號(hào) -p 8080:8080(主機(jī)端口:容器端口)。

3、列出所有的運(yùn)行的容器

docker ps [參數(shù)]。Hd328資訊網(wǎng)——每日最新資訊28at.com

  • -a:列出當(dāng)前正在運(yùn)行的容器。
  • -n :顯示最近創(chuàng)建的容器。
  • -q :只顯示容器的編號(hào)。

例如:docker ps -aq,顯示當(dāng)前正在運(yùn)行的容器的編號(hào)。Hd328資訊網(wǎng)——每日最新資訊28at.com

4、刪除容器

  • docker rm 容器id :不能刪除正在運(yùn)行的容器。
  • docker rm -f $(docker ps -a) :刪除所有的容器。
  • docker ps -a -q|xargs docker rm :刪除所有的容器。

5、啟動(dòng)和停止容器

  • docker start 容器id。
  • docker restart 容器id。
  • docker stop 容器id。
  • docker kill 容器id,強(qiáng)制停止。

6、進(jìn)入當(dāng)前正在運(yùn)行的容器

  1. 方式一:docker exec -it 容器id /bin/bash,進(jìn)入容器后開(kāi)啟一個(gè)新的終端(常用)。
  2. 方式二:docker attach 容器id,進(jìn)入容器當(dāng)前正在執(zhí)行的終端。

7、從容器內(nèi)拷貝文件到主機(jī)

docker cp 容器id:容器內(nèi)路徑 主機(jī)路徑。Hd328資訊網(wǎng)——每日最新資訊28at.com

例如:docker cp 容器id:/home/test.java /home。Hd328資訊網(wǎng)——每日最新資訊28at.com

8、其它常用命令

后臺(tái)啟動(dòng)容器 -d。Hd328資訊網(wǎng)——每日最新資訊28at.com

查看日志命令。Hd328資訊網(wǎng)——每日最新資訊28at.com

docker logs --help。Hd328資訊網(wǎng)——每日最新資訊28at.com

顯示指定行數(shù)的日志:Hd328資訊網(wǎng)——每日最新資訊28at.com

docker logs -tf --tail 10 容器id。Hd328資訊網(wǎng)——每日最新資訊28at.com

-f:內(nèi)容,,,-t:時(shí)間。Hd328資訊網(wǎng)——每日最新資訊28at.com

例如:循環(huán)執(zhí)行。Hd328資訊網(wǎng)——每日最新資訊28at.com

docker run -d centos /bin/sh -c "while;do echo hello world;sleep 1;done"。Hd328資訊網(wǎng)——每日最新資訊28at.com

顯示容器中的進(jìn)行信息。Hd328資訊網(wǎng)——每日最新資訊28at.com

查看docker內(nèi)部的進(jìn)程信息:docker top 容器id。Hd328資訊網(wǎng)——每日最新資訊28at.com

查看容器的元數(shù)據(jù)。Hd328資訊網(wǎng)——每日最新資訊28at.com

docker inspect --help。Hd328資訊網(wǎng)——每日最新資訊28at.com

顯示容器的所有信息:Hd328資訊網(wǎng)——每日最新資訊28at.com

docker inspect 容器id。Hd328資訊網(wǎng)——每日最新資訊28at.com

七、docker常用命令小結(jié)

常用命令
Hd328資訊網(wǎng)——每日最新資訊28at.com

命令含義
Hd328資訊網(wǎng)——每日最新資訊28at.com

attach
Hd328資訊網(wǎng)——每日最新資訊28at.com

當(dāng)前shell下attach連接指定運(yùn)行鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

build
Hd328資訊網(wǎng)——每日最新資訊28at.com

通過(guò)Dockerfile定制鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

commit
Hd328資訊網(wǎng)——每日最新資訊28at.com

提交當(dāng)前容器為新的鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

cp
Hd328資訊網(wǎng)——每日最新資訊28at.com

從容器中拷貝指定文件或者目錄到宿主機(jī)中
Hd328資訊網(wǎng)——每日最新資訊28at.com

create
Hd328資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個(gè)新的容器,同run 但不啟動(dòng)容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

diff
Hd328資訊網(wǎng)——每日最新資訊28at.com

查看docker容器變化
Hd328資訊網(wǎng)——每日最新資訊28at.com

events
Hd328資訊網(wǎng)——每日最新資訊28at.com

從docker服務(wù)獲取容器實(shí)時(shí)事件
Hd328資訊網(wǎng)——每日最新資訊28at.com

exec
Hd328資訊網(wǎng)——每日最新資訊28at.com

在已存在的容器上運(yùn)行命令
Hd328資訊網(wǎng)——每日最新資訊28at.com

export
Hd328資訊網(wǎng)——每日最新資訊28at.com

導(dǎo)出容器的內(nèi)容流作為一個(gè)tar歸檔文件(對(duì)應(yīng)import)
Hd328資訊網(wǎng)——每日最新資訊28at.com

history
Hd328資訊網(wǎng)——每日最新資訊28at.com

展示一個(gè)鏡像形成歷史
Hd328資訊網(wǎng)——每日最新資訊28at.com

images
Hd328資訊網(wǎng)——每日最新資訊28at.com

列出系統(tǒng)當(dāng)前鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

import
Hd328資訊網(wǎng)——每日最新資訊28at.com

從tar包中的內(nèi)容創(chuàng)建一個(gè)新的文件系統(tǒng)映像(對(duì)應(yīng)export)
Hd328資訊網(wǎng)——每日最新資訊28at.com

info
Hd328資訊網(wǎng)——每日最新資訊28at.com

顯示系統(tǒng)相關(guān)信息
Hd328資訊網(wǎng)——每日最新資訊28at.com

inspect
Hd328資訊網(wǎng)——每日最新資訊28at.com

查看容器詳細(xì)信息
Hd328資訊網(wǎng)——每日最新資訊28at.com

kill
Hd328資訊網(wǎng)——每日最新資訊28at.com

強(qiáng)制停止指定docker容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

load
Hd328資訊網(wǎng)——每日最新資訊28at.com

從一個(gè)tar包中加載一個(gè)鏡像(對(duì)應(yīng)save)
Hd328資訊網(wǎng)——每日最新資訊28at.com

login
Hd328資訊網(wǎng)——每日最新資訊28at.com

注冊(cè)或者登陸一個(gè)docker源服務(wù)器
Hd328資訊網(wǎng)——每日最新資訊28at.com

logout
Hd328資訊網(wǎng)——每日最新資訊28at.com

從當(dāng)前Docker registry退出
Hd328資訊網(wǎng)——每日最新資訊28at.com

logs
Hd328資訊網(wǎng)——每日最新資訊28at.com

輸出當(dāng)前容器日志信息
Hd328資訊網(wǎng)——每日最新資訊28at.com

pause
Hd328資訊網(wǎng)——每日最新資訊28at.com

暫停容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

port
Hd328資訊網(wǎng)——每日最新資訊28at.com

查看映射端口對(duì)應(yīng)的容器內(nèi)部源端口
Hd328資訊網(wǎng)——每日最新資訊28at.com

ps
Hd328資訊網(wǎng)——每日最新資訊28at.com

列出容器列表
Hd328資訊網(wǎng)——每日最新資訊28at.com

pull
Hd328資訊網(wǎng)——每日最新資訊28at.com

從docker鏡像源服務(wù)器拉取指定鏡像或者庫(kù)鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

push
Hd328資訊網(wǎng)——每日最新資訊28at.com

推送指定鏡像或者庫(kù)鏡像至docker源服務(wù)器
Hd328資訊網(wǎng)——每日最新資訊28at.com

rename
Hd328資訊網(wǎng)——每日最新資訊28at.com

重命名容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

restart
Hd328資訊網(wǎng)——每日最新資訊28at.com

重啟運(yùn)行的容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

rm
Hd328資訊網(wǎng)——每日最新資訊28at.com

移除一個(gè)或者多個(gè)容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

rmi
Hd328資訊網(wǎng)——每日最新資訊28at.com

移除一個(gè)或多個(gè)鏡像(無(wú)容器使用該鏡像才可以刪除,否則需要?jiǎng)h除相關(guān)容器才可以繼續(xù)或者-f強(qiáng)制刪除)
Hd328資訊網(wǎng)——每日最新資訊28at.com

run
Hd328資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令
Hd328資訊網(wǎng)——每日最新資訊28at.com

save
Hd328資訊網(wǎng)——每日最新資訊28at.com

保存一個(gè)鏡像為一個(gè)tar包(對(duì)應(yīng)load)
Hd328資訊網(wǎng)——每日最新資訊28at.com

search
Hd328資訊網(wǎng)——每日最新資訊28at.com

在docker hub中搜索鏡像
Hd328資訊網(wǎng)——每日最新資訊28at.com

start
Hd328資訊網(wǎng)——每日最新資訊28at.com

啟動(dòng)容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

stats
Hd328資訊網(wǎng)——每日最新資訊28at.com

統(tǒng)計(jì)容器使用資源
Hd328資訊網(wǎng)——每日最新資訊28at.com

stop
Hd328資訊網(wǎng)——每日最新資訊28at.com

停止容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

tag
Hd328資訊網(wǎng)——每日最新資訊28at.com

給鏡像打標(biāo)簽
Hd328資訊網(wǎng)——每日最新資訊28at.com

top
Hd328資訊網(wǎng)——每日最新資訊28at.com

查看容器中運(yùn)行的進(jìn)程信息
Hd328資訊網(wǎng)——每日最新資訊28at.com

unpause
Hd328資訊網(wǎng)——每日最新資訊28at.com

取消暫停容器
Hd328資訊網(wǎng)——每日最新資訊28at.com

version
Hd328資訊網(wǎng)——每日最新資訊28at.com

查看容器版本號(hào)
Hd328資訊網(wǎng)——每日最新資訊28at.com

wait
Hd328資訊網(wǎng)——每日最新資訊28at.com

截取容器停止時(shí)的退出狀態(tài)值
Hd328資訊網(wǎng)——每日最新資訊28at.com

Hd328資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-23635-0.html用了這么多年Docker,殊不知你還有這么多彎彎繞!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 原生“跨組件”通信方式

下一篇: 十個(gè)你必須知道的Java應(yīng)用安全優(yōu)秀實(shí)踐

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 清镇市| 青岛市| 治县。| 巢湖市| 龙门县| 凉山| 绵阳市| 内黄县| 太原市| 汉川市| 古田县| 和平区| 来凤县| 金平| 荣成市| 福贡县| 锡林郭勒盟| 东宁县| 益阳市| 大埔县| 理塘县| 卓资县| 延寿县| 光山县| 新泰市| 阜阳市| 莆田市| 卓资县| 阿克陶县| 阿合奇县| 南丹县| 阳谷县| 含山县| 左云县| 那坡县| 霍林郭勒市| 通山县| 昭苏县| 招远市| 延川县| 砀山县|