自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開(kāi)發(fā) 架構(gòu)
微服務(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)定的大版本。

單體應(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ì)涉及多個(gè)微服務(wù),這個(gè)時(shí)候,被修改過(guò)的代碼都需要重新測(cè)試、打包、部署、上線發(fā)布。無(wú)形之中,給現(xiàn)場(chǎng)運(yùn)維人員增加了成倍的工作壓力。

微服務(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)定的大版本。

而容器技術(shù)可以解決上面的兩個(gè)問(wèn)題(代碼部署難、缺環(huán)境)。

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

一、神之容器 Docker

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

Docker屬于Linux容器的一種封裝,提供簡(jiǎn)單易用的容器使用接口。它是目前最流行的Linux容器解決方案。

一個(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)建和管理操作。

二、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)行交互的主要方式。

Docker Client 的主要作用如下:

  • 用戶交互界面: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ò)通信等操作。

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

Docker Daemon是Docker的守護(hù)進(jìn)程,它是Docker平臺(tái)的后臺(tái)服務(wù)組件,充當(dāng)服務(wù)器角色。

Docker Daemon 的主要作用如下:

  • 容器管理: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)行和管理。

3、鏡像(Image)

在Docker鏡像中,Distribution、Layer、Image、Registry和Reference各自扮演了重要角色。

  • 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)行和管理等操作。

Docker Driver 的主要作用如下:

  • 容器創(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)行提供了底層支持。

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

Docker Graph是Docker中的一種數(shù)據(jù)結(jié)構(gòu),用于記錄和跟蹤Docker鏡像和容器之間的關(guān)系。

Docker Graph 的主要作用如下:

  • 關(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ì)因版本而異。

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

Docker Libcontainer函數(shù)庫(kù)中包含:

  • 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)定性和安全性提供了重要支持。

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)用程序的部署效率和可移植性。

Docker Container 的主要作用如下:

  • 應(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ì)量。

三、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)的。

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

更新軟件包索引。

yum mackecache fast

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

ce社區(qū)版,ee企業(yè)版,推薦安裝企業(yè)版。

yum install docker-ce docker-ce-cli containerd.io。

5、啟動(dòng)Docker

systemctl start docker

6、使用docker version查看版本

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

docker run hello-world

8、卸載

yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

四、run的流程和docker原理

1、run的流程

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

這就是Docker為何比虛擬化更快的原因,Docker有著比虛擬機(jī)更少的抽象層,docker利用的是宿主機(jī)的內(nèi)核,VM需要的是Guest OS。

五、Docker鏡像常用命令

1、基本命令

docker version
docker info
docker 命令 --help #萬(wàn)能命令

docker images。

解釋:

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

可選項(xiàng)

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

2、搜索鏡像

docker search。

可選項(xiàng)

--filter-STATUS-3000 #搜索大于3000的。

3、下載鏡像

指定版本下載。

docker pull 鏡像名[:tag]。

4、刪除鏡像

docker rmi -f 鏡像id。

六、docker容器常用命令

1、下載容器

docker pull centos。

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

參數(shù)說(shuō)明:

  • --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ù)]。

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

例如:docker ps -aq,顯示當(dāng)前正在運(yùn)行的容器的編號(hào)。

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ī)路徑。

例如:docker cp 容器id:/home/test.java /home。

8、其它常用命令

后臺(tái)啟動(dòng)容器 -d。

查看日志命令。

docker logs --help。

顯示指定行數(shù)的日志:

docker logs -tf --tail 10 容器id。

-f:內(nèi)容,,,-t:時(shí)間。

例如:循環(huán)執(zhí)行。

docker run -d centos /bin/sh -c "while;do echo hello world;sleep 1;done"。

顯示容器中的進(jìn)行信息。

查看docker內(nèi)部的進(jìn)程信息:docker top 容器id。

查看容器的元數(shù)據(jù)。

docker inspect --help。

顯示容器的所有信息:

docker inspect 容器id。

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

常用命令

命令含義

attach

當(dāng)前shell下attach連接指定運(yùn)行鏡像

build

通過(guò)Dockerfile定制鏡像

commit

提交當(dāng)前容器為新的鏡像

cp

從容器中拷貝指定文件或者目錄到宿主機(jī)中

create

創(chuàng)建一個(gè)新的容器,同run 但不啟動(dòng)容器

diff

查看docker容器變化

events

從docker服務(wù)獲取容器實(shí)時(shí)事件

exec

在已存在的容器上運(yùn)行命令

export

導(dǎo)出容器的內(nèi)容流作為一個(gè)tar歸檔文件(對(duì)應(yīng)import)

history

展示一個(gè)鏡像形成歷史

images

列出系統(tǒng)當(dāng)前鏡像

import

從tar包中的內(nèi)容創(chuàng)建一個(gè)新的文件系統(tǒng)映像(對(duì)應(yīng)export)

info

顯示系統(tǒng)相關(guān)信息

inspect

查看容器詳細(xì)信息

kill

強(qiáng)制停止指定docker容器

load

從一個(gè)tar包中加載一個(gè)鏡像(對(duì)應(yīng)save)

login

注冊(cè)或者登陸一個(gè)docker源服務(wù)器

logout

從當(dāng)前Docker registry退出

logs

輸出當(dāng)前容器日志信息

pause

暫停容器

port

查看映射端口對(duì)應(yīng)的容器內(nèi)部源端口

ps

列出容器列表

pull

從docker鏡像源服務(wù)器拉取指定鏡像或者庫(kù)鏡像

push

推送指定鏡像或者庫(kù)鏡像至docker源服務(wù)器

rename

重命名容器

restart

重啟運(yùn)行的容器

rm

移除一個(gè)或者多個(gè)容器

rmi

移除一個(gè)或多個(gè)鏡像(無(wú)容器使用該鏡像才可以刪除,否則需要?jiǎng)h除相關(guān)容器才可以繼續(xù)或者-f強(qiáng)制刪除)

run

創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令

save

保存一個(gè)鏡像為一個(gè)tar包(對(duì)應(yīng)load)

search

在docker hub中搜索鏡像

start

啟動(dòng)容器

stats

統(tǒng)計(jì)容器使用資源

stop

停止容器

tag

給鏡像打標(biāo)簽

top

查看容器中運(yùn)行的進(jìn)程信息

unpause

取消暫停容器

version

查看容器版本號(hào)

wait

截取容器停止時(shí)的退出狀態(tài)值

責(zé)任編輯:姜華 來(lái)源: 哪吒編程
相關(guān)推薦

2024-02-20 08:09:51

Java 8DateUtilsDate工具類

2021-01-14 05:08:44

編譯鏈接

2018-06-26 15:00:24

Docker安全風(fēng)險(xiǎn)

2017-06-16 16:16:36

庫(kù)存扣減查詢

2017-07-04 14:01:40

機(jī)房機(jī)柜

2022-05-29 08:54:44

Edge瀏覽器

2017-12-21 19:38:50

潤(rùn)乾中間表

2022-07-26 23:43:29

編程語(yǔ)言開(kāi)發(fā)Java

2020-07-21 18:37:14

代碼條件變量

2018-05-29 14:57:59

HashMap容量初始化

2015-03-27 10:20:41

谷歌地圖谷歌偉大

2021-01-05 07:00:53

微信隱藏功能移動(dòng)應(yīng)用

2022-03-03 07:00:43

Mybatiswhere標(biāo)簽

2013-01-15 09:41:45

編程語(yǔ)言

2024-05-13 16:22:25

固態(tài)硬盤接口硬盤

2018-08-06 11:12:02

編程語(yǔ)言Python腳本語(yǔ)言

2022-01-12 20:04:09

網(wǎng)絡(luò)故障斷網(wǎng)事件網(wǎng)絡(luò)安全

2018-01-31 16:12:47

筆記本輕薄本游戲本

2021-05-21 05:24:03

Excel數(shù)據(jù)技巧

2024-01-02 12:48:49

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)