AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

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

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

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

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

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

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

一、神之容器 Docker

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

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

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

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

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

二、Docker架構(gòu)圖

  • 用戶使用 Docker Client(客戶端) 與 Docker Daemon 建立通信,并發(fā)送請求給后者,客戶端和守護(hù)程序之間通過REST API進(jìn)行通信,可以使用UNIX套接字或網(wǎng)絡(luò)接口;
  • Docker Daemon(后臺守護(hù)進(jìn)程)提供Docker Server,用于接收Docker Client的請求,Docker Server 通過路由Router與分發(fā)調(diào)度,找到相應(yīng)的 Handler 來執(zhí)行請求,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(注冊中心)、Reference(引用)。
  • Docker Driver 驅(qū)動(dòng),Docker架構(gòu)中的驅(qū)動(dòng)模塊,它主要通過與Docker守護(hù)進(jìn)程進(jìn)行交互,實(shí)現(xiàn)對Docker容器執(zhí)行環(huán)境的定制和管理;
  • 當(dāng)需要容器鏡像時(shí),則從 Registry(注冊中心) 中下載鏡像,并通過鏡像管理驅(qū)動(dòng) Graphdriver 將下載鏡像以 Graph 的形式存儲;
  • Docker Graph 內(nèi)部數(shù)據(jù)庫,Docker Graph是Docker中的一種數(shù)據(jù)結(jié)構(gòu),用于記錄和跟蹤Docker鏡像和容器之間的關(guān)系;
  • 一個(gè) Repository 表示某類鏡像的倉庫,同一個(gè) Repository 內(nèi)的鏡像用 Tag 來區(qū)分,一個(gè) Registry 包含多個(gè)Repository,一個(gè) Repository 包含同類型的多個(gè) Image,并存儲著每一個(gè)容器鏡像的具體信息;GraphDB是一個(gè)基于SQLite的小型圖數(shù)據(jù)庫,記錄容器鏡像之間的關(guān)系;
  • rootfs是Docker容器的根文件系統(tǒng),它位于bootfs之上,表現(xiàn)為Docker容器的根目錄,包含基本的文件和目錄。在Docker中,rootfs由內(nèi)核掛載為“只讀”模式,而后通過“聯(lián)合掛載”技術(shù)額外掛載一個(gè)“可寫”層;
  • 通過 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的底層容器管理庫,它提供了一組接口和函數(shù),用于創(chuàng)建和管理容器。Libcontainer直接與內(nèi)核交互,負(fù)責(zé)容器的命名空間、cgroup、網(wǎng)絡(luò)設(shè)備等底層操作;
  • Docker Container是Docker中的容器實(shí)例,它是通過Driver和Libcontainer共同協(xié)作創(chuàng)建出來的。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平臺進(jìn)行交互的主要方式。5qD28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

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

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

  • 容器管理:Docker Daemon負(fù)責(zé)創(chuàng)建、啟動(dòng)、停止、刪除和管理Docker容器。它接收來自Docker客戶端的請求,并根據(jù)請求執(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è)置,確保容器之間的通信和互相訪問。
  • 數(shù)據(jù)卷管理:Docker Daemon還管理容器的數(shù)據(jù)卷,用于持久化存儲容器中的數(shù)據(jù),保證數(shù)據(jù)的可靠性和持久性。

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

3、鏡像(Image)

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

  • Distribution(分發(fā)):通常涉及到Docker鏡像的分發(fā)和運(yùn)輸。Docker鏡像可以通過不同的方式進(jìn)行分發(fā),例如直接從Registry下載,或者通過特定的工具導(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è)只讀模板,可以通過鏡像創(chuàng)建新的容器實(shí)例;
  • Registry(注冊中心):Registry是存儲和管理Docker鏡像的服務(wù)器。它是用戶上傳、下載、管理Docker鏡像的地方。例如Dokcer Hub就是一個(gè)公共的Registry;
  • Reference(引用):引用指的是Docker鏡像的一種標(biāo)識,通過引用,用戶可以指定需要操作的特定鏡像;

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

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

Docker Driver 的主要作用如下:5qD28資訊網(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ò)配置、存儲掛載、進(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)存、磁盤空間等。它可以對容器使用的資源進(jìn)行限制和控制,確保容器不會(huì)超出預(yù)設(shè)的資源限制。

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

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

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

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

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

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

6、Docker Libcontainer函數(shù)庫

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

  • namespaces:namespaces技術(shù)用于實(shí)現(xiàn)Docker容器之間的隔離。通過namespaces,可以實(shí)現(xiàn)網(wǎng)絡(luò)、通信、文件、權(quán)限等對象的隔離,確保容器在獨(dú)立的環(huán)境中運(yùn)行,并且相互之間不會(huì)產(chǎn)生干擾。這種隔離機(jī)制有助于提高容器的安全性和穩(wěn)定性。
  • Cgroups:Cgroups(Control Groups)用于對Docker容器所占用的系統(tǒng)資源進(jìn)行限制和管理。它可以控制容器的CPU、內(nèi)存、磁盤I/O等資源的使用量,確保容器不會(huì)消耗過多的資源,從而防止系統(tǒng)過載或資源耗盡。
  • 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)部對進(jìn)程的權(quán)限進(jìn)行更精細(xì)的控制。它將超級用戶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平臺的穩(wěn)定性和安全性提供了重要支持。5qD28資訊網(wǎng)——每日最新資訊28at.com

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

Docker Container是Docker中的容器實(shí)例,它是通過Driver和Libcontainer共同協(xié)作創(chuàng)建出來的。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)用程序的部署效率和可移植性。5qD28資訊網(wǎng)——每日最新資訊28at.com

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

  • 應(yīng)用程序的隔離運(yùn)行:Docker Container提供了輕量級、獨(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允許對每個(gè)容器進(jìn)行資源限制,例如CPU、內(nèi)存等。這樣可以防止某個(gè)容器消耗過多資源,確保系統(tǒng)的穩(wěn)定運(yùn)行;
  • 快速部署和擴(kuò)展:Docker Container的輕量級特性使得它可以快速啟動(dòng)和停止,非常適合于云計(jì)算和微服務(wù)架構(gòu)中的快速部署和橫向擴(kuò)展;
  • 版本控制和回滾:通過標(biāo)記和版本控制,可以輕松管理和回滾容器的版本,提高了應(yīng)用程序的版本管理和部署的靈活性;
  • 安全性增強(qiáng):Docker Container提供了隔離的運(yùn)行環(huán)境,可以減少系統(tǒng)漏洞和攻擊面,提高應(yīng)用程序的安全性。

Docker Container是Docker技術(shù)的核心組件之一,它提供了輕量級、隔離的運(yùn)行環(huán)境,用于部署、運(yùn)行和管理應(yīng)用程序。它的出現(xiàn)改變了傳統(tǒng)應(yīng)用部署和運(yùn)維的方式,提高了開發(fā)、測試、運(yùn)維的效率和質(zhì)量。5qD28資訊網(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è)置鏡像倉庫

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

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

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

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

yum mackecache fast

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

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

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

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

5、啟動(dòng)Docker

systemctl start docker

6、使用docker version查看版本

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

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

docker run hello-world

5qD28資訊網(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的流程

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

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

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

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

五、Docker鏡像常用命令

1、基本命令

docker versiondocker infodocker 命令 --help #萬能命令

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

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

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

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

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

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

2、搜索鏡像

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

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

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

3、下載鏡像

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

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

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

4、刪除鏡像

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

六、docker容器常用命令

1、下載容器

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

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

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

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

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

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

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

例如:docker ps -aq,顯示當(dāng)前正在運(yùn)行的容器的編號。5qD28資訊網(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)入容器后開啟一個(gè)新的終端(常用)。
  2. 方式二:docker attach 容器id,進(jìn)入容器當(dāng)前正在執(zhí)行的終端。

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

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

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

8、其它常用命令

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達(dá)到了中國第一,同時(shí)還表示小米電視的巨屏風(fēng)暴即將開始?!肮家粋€(gè)好消息2023年#小米電視上半年出貨量中國
  • 7月安卓手機(jī)性價(jià)比榜:努比亞+紅魔兩款新機(jī)入榜

    7月登場的新機(jī)有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產(chǎn)品,而且努比亞和紅魔也一貫有著不錯(cuò)的性價(jià)比,所以在本次的性價(jià)比榜單
  • 一篇聊聊Go錯(cuò)誤封裝機(jī)制

    %w 是用于錯(cuò)誤包裝(Error Wrapping)的格式化動(dòng)詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數(shù)中的一個(gè)特殊格式化動(dòng)詞,用于將一個(gè)錯(cuò)誤(或其他可打印的值)包裝在一個(gè)新的錯(cuò)誤中。使
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設(shè)置樣式??梢詾閾碛兄付▽傩缘?HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營,這意味著騰訊音樂長音頻業(yè)務(wù)走向消亡。騰訊在長音頻領(lǐng)域還在摸索。為
  • 得物寵物生意「狂飆」,發(fā)力“它經(jīng)濟(jì)”

    作者|花花小萌主近日,得物宣布正式上線寵物鑒別,通過得物App內(nèi)的“在線鑒別”,可找到鑒別寵物的選項(xiàng)。通過上傳自家寵物的部位細(xì)節(jié),就能收獲擁有專業(yè)資質(zhì)認(rèn)證的得物鑒
  • 自律,給不了Keep自由!

    來源 | 互聯(lián)網(wǎng)品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時(shí)不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 造車兩年股價(jià)跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個(gè)交易日起持有小米集團(tuán)的股票,那么截至2023年上半年最后一個(gè)交易日,投資者將浮虧59.16%,同區(qū)間的恒生科技指數(shù)跌幅為52.78%
  • SN570 NVMe SSD固態(tài)硬盤 價(jià)格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進(jìn),性能也得到了進(jìn)一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top