版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Docker容器技術(shù)與應(yīng)用湖北輕工職業(yè)技術(shù)學(xué)院Docker容器管理項(xiàng)目3項(xiàng)目背景在當(dāng)今數(shù)字化時(shí)代,軟件開發(fā)與部署面臨諸多挑戰(zhàn)。傳統(tǒng)應(yīng)用部署方式繁瑣,環(huán)境配置復(fù)雜且易出現(xiàn)兼容性問題,導(dǎo)致開發(fā)、測試和運(yùn)維效率低下。隨著業(yè)務(wù)規(guī)模的快速擴(kuò)張,對(duì)應(yīng)用的快速迭代和靈活部署提出了更高要求?!癉ocker容器管理”旨在解決這些痛點(diǎn),提升整體開發(fā)運(yùn)維效能。Docker容器管理項(xiàng)目3
容器是Docker的另一個(gè)核心概念。對(duì)比鏡像而言,鏡像是靜態(tài)的只讀文件,容器是鏡像的一個(gè)運(yùn)行實(shí)例,容器帶有運(yùn)行時(shí)需要的可寫文件層。本項(xiàng)目主要介紹圍繞容器這一核心概念的具體操作,包括創(chuàng)建容器、啟動(dòng)容器、終止容器、進(jìn)入容器內(nèi)執(zhí)行操作、刪除容器和通過導(dǎo)入/導(dǎo)出容器來實(shí)現(xiàn)容器遷移等。項(xiàng)目三:Docker容器管理目錄任務(wù)3.1、認(rèn)識(shí)Docker容器任務(wù)3.2、Docker容器資源控制創(chuàng)建定制的Docker鏡像回顧1、dockercommit命令構(gòu)建鏡像的方法。2、利用Dockerfile文件構(gòu)建鏡像的方法。知識(shí)目標(biāo)了解容器的基本概念、特點(diǎn)和實(shí)現(xiàn)原理。了解鏡像和容器的關(guān)系。能力目標(biāo)掌握容器的基本操作。掌握容器的運(yùn)維管理。素質(zhì)目標(biāo)培養(yǎng)精益求精的工匠精神。樹立誠實(shí)守信的職業(yè)素養(yǎng)。快速的交付和部署是Docker的優(yōu)勢之一,Docker容器涉及部署和運(yùn)維。工程師小王決定編寫Docker容器基礎(chǔ)操作手冊(cè),其中包含Docker容器的基本介紹和容器的基本操作命令。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)任務(wù)要求3.1Docker容器
Docker作為一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包其應(yīng)用及依賴包到一個(gè)可移植的容器中,并發(fā)布到任何流行的Linux機(jī)器中,實(shí)現(xiàn)容器化。
容器是一個(gè)相對(duì)獨(dú)立的運(yùn)行環(huán)境,這一點(diǎn)類似于虛擬機(jī),但是它不像虛擬機(jī)那樣徹底。容器通過將軟件與周圍環(huán)境隔離開來,將外界的影響降為最小,如不能在容器內(nèi)把宿主機(jī)上的資源全部消耗掉。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1Docker容器Docker容器具有以下特點(diǎn)。
(1)輕量級(jí):在一臺(tái)機(jī)器上運(yùn)行的Docker容器共享宿主機(jī)的操作系統(tǒng)內(nèi)核,只需占用較少的資源。
(2)標(biāo)準(zhǔn):Docker容器基于開放標(biāo)準(zhǔn),適用于基于Linux和Windows的應(yīng)用,在任何環(huán)境中都能夠始終如一地運(yùn)行。
(3)安全:Docker容器將應(yīng)用程序彼此隔離并從底層基礎(chǔ)架構(gòu)中分離出來。Docker提供了最強(qiáng)大的默認(rèn)隔離功能,可以將應(yīng)用程序問題限制在一個(gè)容器中,而不是限制在整個(gè)機(jī)器上。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1容器實(shí)現(xiàn)原理
(1)通過namespace對(duì)不同的容器實(shí)現(xiàn)了隔離,namespace允許一個(gè)進(jìn)程及其子進(jìn)程從共享的宿主機(jī)內(nèi)核資源(掛載點(diǎn)、進(jìn)程列表等)中獲得一個(gè)僅自己可見的隔離區(qū)域,讓同一個(gè)namespace下的所有進(jìn)程感知彼此變化,對(duì)外界進(jìn)程一無所知,仿佛運(yùn)行在一個(gè)獨(dú)占的操作系統(tǒng)中一樣。
(2)通過ControlGroups(CGroups)隔離宿主機(jī)上的物理資源,如CPU、內(nèi)存、磁盤I/O和網(wǎng)絡(luò)帶寬。使用CGroups還可以為資源設(shè)置權(quán)重、計(jì)算使用量、操控任務(wù)(進(jìn)程或線程)啟停等。
(3)使用鏡像管理功能,利用Docker的鏡像分層、寫時(shí)復(fù)制、內(nèi)容尋址、聯(lián)合掛載技術(shù)實(shí)現(xiàn)了一套完整的容器文件系統(tǒng)及運(yùn)行環(huán)境,結(jié)合鏡像倉庫,鏡像可以快速下載和共享,以便在多環(huán)境中部署。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1Docker鏡像與容器的關(guān)系Docker鏡像是Docker容器運(yùn)行的基礎(chǔ)??梢岳斫鉃殓R像是靜態(tài)的定義,容器是鏡像運(yùn)行的實(shí)例,鏡像和容器的關(guān)系就像面向?qū)ο蟪绦蛟O(shè)計(jì)中的類和實(shí)例一樣。有了鏡像才能啟動(dòng)容器,容器可以被創(chuàng)建、啟動(dòng)、終止、刪除、暫停等。容器在啟動(dòng)前,Docker需要本地存在對(duì)應(yīng)的鏡像,如果本地不存在對(duì)應(yīng)的鏡像,則Docker會(huì)進(jìn)行鏡像倉庫下載(默認(rèn)鏡像倉庫是DockerHub)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1Docker鏡像與容器的關(guān)系
每一個(gè)鏡像都會(huì)有一個(gè)文本文件Dockerfile,其定義了如何構(gòu)建Docker鏡像。由于Docker鏡像是分層管理的,因此Docker鏡像的定制實(shí)際上就是定制每一層所添加的配置、文件。一個(gè)新鏡像是由基礎(chǔ)鏡像一層一層疊加生成的,每安裝一個(gè)軟件就等于在現(xiàn)有的鏡像上增加一層。
當(dāng)容器啟動(dòng)時(shí),一個(gè)新的可寫層加載到鏡像的頂部,這一層成為容器層,容器層之下都為鏡像層。只有容器層是可寫的,容器層下面的所有鏡像層都是只讀的。對(duì)容器的任何改動(dòng)都只會(huì)發(fā)生在容器層中。如果Docker容器需要改動(dòng)底層Docker鏡像中的文件,則會(huì)啟動(dòng)Copy-on-Write機(jī)制,即先將此文件從鏡像層中復(fù)制到最上層的可寫層中,再對(duì)可寫層中的副本進(jìn)行操作。因此,容器層保存的是鏡像變化的部分,不會(huì)對(duì)鏡像本身進(jìn)行任何修改,所以鏡像可以被多個(gè)容器共享。Docker的默認(rèn)存儲(chǔ)目錄在/var/lib/docker。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1Docker對(duì)容器內(nèi)文件的操作可以歸納如下。
(1)添加文件:在容器中創(chuàng)建文件時(shí),新文件被添加到容器層中。
(2)讀取文件:當(dāng)在容器中讀取某個(gè)文件時(shí),Docker會(huì)從上向下依次在各鏡像層中查找此文件,一旦找到就打開此文件并讀入內(nèi)存。
(3)修改文件:在容器中修改已存在的文件時(shí),Docker會(huì)從上向下依次在各個(gè)鏡像層中查找此文件,一旦找到就立即將其復(fù)制到容器層中,再進(jìn)行修改。
(4)刪除文件:在容器中刪除文件時(shí),Docker會(huì)從上向下依次在鏡像層中查找,找到此文件后,會(huì)在容器層記錄此刪除操作。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1使用容器的操作命令docker
客戶端非常簡單
,我們可以直接輸入
docker
--help命令來查看到Docker客戶端的所有命令選項(xiàng)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1使用容器的操作命令(1)創(chuàng)建容器。dockercreate命令用于新建一個(gè)容器,其命令格式如下。dockercreate[OPTIONS]IMAGE[COMMAND][ARG...]OPTIONS選項(xiàng)的說明如下。①-d:后臺(tái)運(yùn)行容器,并返回容器ID。②-i:以交互模式運(yùn)行容器,通常與-t同時(shí)使用。③-t:為容器重新分配一個(gè)偽輸入終端,通常與-i同時(shí)使用。④--name="containername":為容器指定一個(gè)容器名。⑤--dns:指定容器使用的DNS服務(wù)器,默認(rèn)和本地宿主機(jī)一致。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1⑥-h"hostname":指定容器的hostname。⑦-eusername="ritchie":設(shè)置環(huán)境變量。⑧--cpuset="0-2"or--cpuset="0,1,2":綁定容器到指定CPU中運(yùn)行。⑨-m:設(shè)置容器使用內(nèi)存的最大值。⑩--net="bridge":指定容器的網(wǎng)絡(luò)連接類型。11
--link=[]:添加鏈接到另一個(gè)容器。12--expose=[]:開放一個(gè)端口或一組端口。注意:dockercreate命令只是創(chuàng)建容器,如果需要啟動(dòng)容器,則使用使用啟動(dòng)容器的命令。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1使用容器的操作命令(1)創(chuàng)建容器。例如:使用Docker鏡像centos:latest創(chuàng)建容器,并將容器命名為centos7的代碼如下。[root@localhost~]#dockercreate-it--namecentos7centos:latest任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(2)列出容器。dockerps命令用于列出本地宿主機(jī)上的容器,其命令格式如下。dockerps[OPTIONS]OPTIONS選項(xiàng)的說明如下。①-a:列表顯示本地宿主機(jī)上的所有容器,包括未運(yùn)行的容器。②-f:根據(jù)條件過濾顯示的內(nèi)容。③-l:顯示最近創(chuàng)建的容器。(小寫L)④-n:列出最近創(chuàng)建的n個(gè)容器。⑤-q:靜默模式,只顯示容器ID。⑥-s:顯示總的文件的大小。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(2)列出容器。dockerps命令用于列出本地宿主機(jī)上的容器。例如,列出所有本地宿主機(jī)正在運(yùn)行的容器信息的代碼如下。[root@localhost~]#dockerps#默認(rèn)列出本地宿主機(jī)上正在運(yùn)行的容器如果要列出所有的容器,則使用命令:[root@localhost~]#dockerps–a任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(2)列出容器。dockerps命令用于列出本地宿主機(jī)上的容器。如果列出本地宿主機(jī)上所有容器的ID。[root@localhost~]#dockerps–a–q如果列出本地宿主機(jī)上最近創(chuàng)建的2個(gè)容器信息。[root@localhost~]#dockerps–n2任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。啟動(dòng)容器有兩種方式:一種是將終止?fàn)顟B(tài)的容器重新啟動(dòng),另一種是基于鏡像創(chuàng)建一個(gè)容器并啟動(dòng)。①啟動(dòng)終止的容器。dockerstart命令用于將一個(gè)已經(jīng)終止的容器啟動(dòng)起來。其命令格式如下。dockerstart[OPTIONS]CONTAINER[CONTAINER...]例如,啟動(dòng)名稱為centos7的已終止容器的代碼如下。[root@localhost~]#dockerstartcentos7容器啟動(dòng)成功后,容器狀態(tài)變?yōu)椤癠P”。啟動(dòng)容器時(shí),可以使用容器名、容器ID或容器短ID縮寫,但要求短ID縮寫必須唯一。例如:[root@localhost~]#dockerstartcc9a44968e或[root@localhost~]#dockerstartcc注意:dockerstart命令只是將容器啟動(dòng)起來,如果需要進(jìn)入交互式終端,則可以利用dockerexec命令,并指定一個(gè)bash。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。②新建并啟動(dòng)容器。除了利用dockercreate命令創(chuàng)建容器并通過dockerstart命令來啟動(dòng)容器之外,也可以直接利用dockerrun命令新建并啟動(dòng)容器。dockerrun命令等價(jià)于先執(zhí)行dockercreate命令,再執(zhí)行dockerstart命令。其命令格式如下。dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]//命令選項(xiàng)的說明同dockercreate命令OPTIONS選項(xiàng)的說明如下。①-d:后臺(tái)運(yùn)行容器,并返回容器ID。②-i:以交互模式運(yùn)行容器,通常與-t同時(shí)使用。③-t:為容器重新分配一個(gè)偽輸入終端,通常與-i同時(shí)使用。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。④--name="containername":為容器指定一個(gè)容器名。⑤--dns:指定容器使用的DNS服務(wù)器,默認(rèn)和本地宿主機(jī)一致。⑥-h"hostname":指定容器的hostname。⑦-eusername="ritchie":設(shè)置環(huán)境變量。⑧--cpuset="0-2"or--cpuset="0,1,2":綁定容器到指定CPU中運(yùn)行。⑨-m:設(shè)置容器使用內(nèi)存的最大值。⑩--net="bridge":指定容器的網(wǎng)絡(luò)連接類型。[11]--link=[]:添加鏈接到另一個(gè)容器。[12]--expose=[]:開放一個(gè)端口或一組端口。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。[13]–p:端口映射
前面我們實(shí)現(xiàn)了通過網(wǎng)絡(luò)端口來訪問運(yùn)行在docker容器內(nèi)的服務(wù)。
容器中可以運(yùn)行一些網(wǎng)絡(luò)應(yīng)用,要讓外部也可以訪問這些應(yīng)用,可以通過
-P
或
-p
參數(shù)來指定端口映射。兩種方式的區(qū)別是: -P:是容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口。 -p:
是容器內(nèi)部端口綁定到指定的主機(jī)端口。
我們使用
-P
綁定端口號(hào),使用
dockerps
可以看到容器端口5000綁定主機(jī)端口32768。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。
我們也可以使用
-p
標(biāo)識(shí)來指定容器端口綁定到主機(jī)端口。
任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1另外,我們可以指定容器綁定的網(wǎng)絡(luò)地址,比如綁定。
這樣我們就可以通過訪問:5001來訪問容器的5000端口。上面的例子中,默認(rèn)都是綁定tcp端口,如果要綁定UDP端口,可以在端口后面加上
/udp。(3)啟動(dòng)容器。–p:端口映射上面的例子中,默認(rèn)都是綁定tcp端口,如果要綁定UDP端口,可以在端口后面加上
/udp。
任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。例如,輸出“helloworld”信息后容器自動(dòng)終止的代碼如下。[root@localhost~]#dockerruncentos:latest/bin/echo“helloworld”Helloworld[root@localhost~]#dockerps
–a通過輸出結(jié)果可以看出,使用dockerrun命令輸出“helloworld”信息后,容器自動(dòng)終止,此時(shí)容器狀態(tài)為“Exited”。該命令與本地直接執(zhí)行/bin/echo“helloworld”命令幾乎沒有區(qū)別,無法知曉容器是否已經(jīng)啟動(dòng),也無法實(shí)現(xiàn)與用戶的交互。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。當(dāng)利用dockerrun命令來創(chuàng)建并啟動(dòng)容器時(shí),Docker在后臺(tái)運(yùn)行的流程如下。a.檢查本地是否存在指定的鏡像,若不存在,則從鏡像倉庫中下載。b.利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器。c.分配一個(gè)文件系統(tǒng),并在只讀的鏡像層外面掛載一個(gè)可寫容器層。d.從宿主機(jī)的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中。e.從地址池分配一個(gè)IP地址給容器。f.執(zhí)行用戶指定的應(yīng)用程序。g.執(zhí)行完畢后容器被終止。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。如果需要實(shí)現(xiàn)與用戶的交互操作,則可以啟動(dòng)一個(gè)bash終端。例如,輸出“helloworld”信息后容器自動(dòng)終止的代碼如下。[root@localhost~]#dockerrun-itcentos:latest/bin/bash[root@99eb0e6b2204]#其中:-i選項(xiàng)表示允許容器的標(biāo)準(zhǔn)輸入保持打開,-t選項(xiàng)表示允許Docker分配一個(gè)偽終端,并綁定到容器的標(biāo)準(zhǔn)輸入上。在交互模式下,用戶可以在終端上執(zhí)行命令,例如:[root@99eb0e6b2204]#date可以輸入exit命令或按CTRL+D組合鍵推出容器,此時(shí)容器處于“Exited”狀態(tài)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。通常情況下,用戶需要容器在后臺(tái)以守護(hù)狀態(tài)運(yùn)行,而不是把執(zhí)行命令的結(jié)果直接輸出到當(dāng)前宿主機(jī)中,此時(shí)可以使用-d參數(shù)。例如,基于registry:latest創(chuàng)建并在后臺(tái)啟動(dòng)容器的代碼如下。[root@registry~]#dockerrun-dit--namemyregistry-p5000:5000-v/myregistry:/var/lib/registryregistry:latest在根目創(chuàng)建掛載目錄myregistry,利用registry鏡像創(chuàng)建容器名為myresistry的容器,以提供私有倉庫服務(wù),并把宿主機(jī)/myregistry目錄掛載到容器的/var/lig/registry目錄上。并運(yùn)行docerps命令查看容器是否處于運(yùn)行(”UP”)狀態(tài)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(3)啟動(dòng)容器。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1加了
-d
參數(shù)默認(rèn)不會(huì)進(jìn)入容器,讓容器在后臺(tái)運(yùn)行;-i:讓容器的輸入保持打開狀態(tài),-t:讓Docker分配一個(gè)偽終端;--name容器名字;-p指定端口映射,容器內(nèi)部的5000端口映射到我們本地主機(jī)的5000端口上;-v:為容器添加數(shù)據(jù)卷,表示目錄映射關(guān)系,主機(jī)的目錄/myregistry映射到容器的/var/lig/registry。(4)進(jìn)入容器。
當(dāng)使用-d參數(shù)來創(chuàng)建容器時(shí),由于容器在后臺(tái)運(yùn)行,因此無法看到容器中的信息,也無法對(duì)容器進(jìn)行操作。如果需要進(jìn)入容器的交互模式,則可以利用dockerattach命令或dockerexec命令。①dockerattach命令:dockerattach命令是Docker自帶的命令,其命令格式如下。dockerattach[OPTIONS]CONTAINER】例如,利用centos鏡像生成容器,并利用dockerattach命令進(jìn)入容器的代碼如下。[root@localhost~]#dockerrun–ditcentos:latest/bin/bash[root@localhost~]#dockerps–n1[root@localhost~]#dockerattach6506adadeba9[root@6506adadeba9]#任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(4)進(jìn)入容器。
②dockerexec命令在利用dockerexec命令進(jìn)入交互式環(huán)境時(shí),必須指定-i、-t參數(shù)以及Shell的名稱。利用dockerexec和dockerattach命令均可進(jìn)入容器,在實(shí)際應(yīng)用中,推薦使用dockerexec命令[root@localhost~]#dockerrun–ditcentos:latest/bin/bash[root@localhost~]#dockerps–n1[root@localhost~]#dockerexec–it6506adadeba9/bin/bash[root@6506adadeba9]#任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(4)進(jìn)入容器。
利用dockerexec和dockerattach命令均可進(jìn)入容器,在實(shí)際應(yīng)用中,推薦使用dockerexec命令,原因如下:a.attach是同步的,若有多個(gè)用戶attach到一個(gè)容器,則當(dāng)一個(gè)窗口命令阻塞時(shí),其他窗口都無法執(zhí)行操作。b.利用dockerattach命令進(jìn)入交互式環(huán)境時(shí),使用exit命令退出之后,容器即終止,而dockerexec命令不會(huì)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(5)啟動(dòng)、終止、重啟容器。啟動(dòng)容器的命令的格式:dockerstart[OPTIONS]CONTAINER[CONTAINER...]終止容器的命令的格式:dockerstop[OPTIONS]CONTAINER[CONTAINER...]
重啟容器的命令的格式:dockerrestart[OPTIONS]CONTAINER[CONTAINER...]
任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(5)啟動(dòng)、終止、重啟容器。例如,啟動(dòng)已被終止的容器名為mycentos容器的代碼如下。[root@localhost~]#dockerstopmycentos例如,重啟容器名為mycentos容器的代碼如下。[root@localhost~]#dockerrestartmycentos除了利用dockerstop命令終止容器之外,當(dāng)Docker容器中指定的應(yīng)用程序終止時(shí),容器也會(huì)自動(dòng)終止。例如:用戶利用exit命令或按CtRL+D組合鍵退出終端時(shí),所創(chuàng)建的窗口立即終止,此時(shí)容器處于“Exited”狀態(tài)。
任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(6)刪除容器。dockerrm命令可以刪除一個(gè)或多個(gè)容器,默認(rèn)只能刪除非運(yùn)行狀態(tài)的容器,其命令格式如下。dockerrm[OPTIONS]CONTAINER[CONTAINER...]OPTIONS選項(xiàng)的說明如下。①-f:強(qiáng)制刪除處于運(yùn)行狀態(tài)的容器。②-v:刪除容器掛載的數(shù)據(jù)。例如,刪除容器名為mycentos容器的代碼如下。[root@localhost~]#dockerrmmycentos如果mycentos容器處于非運(yùn)行狀態(tài),則可以正常刪除;反之會(huì)報(bào)錯(cuò),需要先終止容器再進(jìn)行刪除;也可以使用-f參數(shù)進(jìn)行強(qiáng)制刪除,命令如下:[root@localhost~]#dockerrm-fmycentos任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(6)刪除容器。也可在刪除容器的時(shí)候,刪除容器掛載的數(shù)據(jù)卷。例如,刪除容器名為mycentos容器時(shí),刪除容器掛載的數(shù)據(jù)卷的代碼如下。[root@localhost~]#dockerrm–vmycentos如果想要?jiǎng)h除所有處于“Exited”狀態(tài)的容器,則代碼如下:[root@localhost~]#dockerrm$(sudodockerps-qfstatus=exited)如果想要?jiǎng)h除孤立的容器,則代碼如下:[root@localhost~]#dockercontainerprune還有一個(gè)刪除容器的命令:
dockersystemprune命令用于清理沒有使用的數(shù)據(jù),包括鏡像數(shù)據(jù),已經(jīng)停止的容器任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(7)導(dǎo)入和導(dǎo)出容器。①導(dǎo)出容器如果要導(dǎo)出某個(gè)窗口到本地,則可以利用dockerexport命令,可將容器導(dǎo)出為TAR文件格式。其命令格式如下。dockerexport[OPTIONS]CONTAINER其中:OPTIONS為-o參數(shù)表示指定導(dǎo)出的TAR文件名。例如:將容器名為mycentos的容器導(dǎo)出,文件格式為“cent-日期”,其代碼如下。[root@localhost~]#dockerexport–ocentos-date+%Y%m%d.tar
mycentos[root@localhost~]#lsanaconda-ks.cfgcentos-20230307.tar任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(7)導(dǎo)入和導(dǎo)出容器。②導(dǎo)入容器可以利用dockerimport命令導(dǎo)入一個(gè)鏡像,類型為TAR文件,其命令格式如下。dockerimport[OPTIONS][REPOSITORY[:TAG]]例如:從鏡像歸檔文件centos7.tar創(chuàng)建鏡像代碼如下:也可以指定URL或者某個(gè)目錄進(jìn)行導(dǎo)入,命令如下:dockerimport/exampleimage.tgzexample/imagerepo任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1dockersave和dockerexport的區(qū)別是什么?dockersaveimages_name:將一個(gè)鏡像導(dǎo)出為文件;dockerexportcontainer_id:將一個(gè)容器導(dǎo)出為文件。dockerimport和dockerload的區(qū)別是什么?dockerload命令導(dǎo)入鏡像庫存儲(chǔ)文件到本地鏡像庫;dockerimport命令導(dǎo)入一個(gè)容器快照到本地鏡像庫。容器快照將會(huì)丟棄所有的歷史記錄和元數(shù)據(jù)信息,而鏡像存儲(chǔ)文件將保存完整記錄,體積也會(huì)更大。兩者的區(qū)別在于容器快照將會(huì)丟棄所有的歷史記錄和元數(shù)據(jù)信息,而鏡像存儲(chǔ)文件將保存完整記錄,體積也會(huì)更大。此外從容器快照文件導(dǎo)入時(shí),也可以重新指定標(biāo)簽等元數(shù)據(jù)。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)3.1相關(guān)知識(shí)(8)查看容器配置信息。dockerinspect命令用于查看容器的配置信息,包含容器名、環(huán)境變量、運(yùn)行命令、主機(jī)配置、網(wǎng)絡(luò)配置和數(shù)據(jù)卷配置等,其命令格式如下。dockerinspect[OPTIONS]CONTAINER|IMAGE|TASK[CONTAINER|IMAGE|TASK...]例如:查看容器名為centos7的容器的配置信息代碼如下。任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(8)查看容器配置信息??梢允褂谩?-format”參數(shù)獲取指定的數(shù)據(jù)。例如,獲取容器名為mycentos容器的IP地址的代碼如下。[root@localhost~]#dockerinspect--format='{{range.NetworkSettings.Networks}}ll.IPAddress}}{{end}}'mycentos任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(9)查看容器日志。dockerlogs命令用于將標(biāo)準(zhǔn)輸出數(shù)據(jù)作為日志輸出到dockerlogs命令的終端上,常用于在后臺(tái)運(yùn)行的容器中,其命令格式如下。dockerlogs[OPTIONS]CONTAINEROPTIONS選項(xiàng)的說明如下。①-since:指定輸出日志的開始日期,即只輸出指定日期之后的日志。②-f:查看實(shí)時(shí)日志。③-t:查看日志產(chǎn)生的日期。④-tail=10:查看最后的10條日志。[root@localhost~]#dockerlogsf0d4ca773dbe任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(10)其他容器管理命令。(a)dockerpause命令。dockerpause命令用于暫停容器進(jìn)程。例如,暫停mycentos容器的進(jìn)程的代碼如下。[root@localhost~]#dockerpausemycentos(b)dockerport命令。dockerport命令用于查看容器與宿主機(jī)端口映射的信息。例如,查看容器relaxed_yonath的端口映射信息的代碼如下。[root@localhost~]#dockerportrelaxed_yonath5000/tcp->:5000任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(10)其他容器管理命令。(c)dockerrename命令。Dockerrename命令用于更改容器名稱。例如,將容器名為centos7的容器更名為centos7-1的代碼如下。[root@localhost~]#dockerrenamecentos7centos7-1(d)dockerstats命令。dockerstats命令用于動(dòng)態(tài)顯示容器的資源消耗情況,包括CPU、內(nèi)存、網(wǎng)絡(luò)I/O。例如,查看容器名為mycetnos的容器資源消耗情況的代碼如下。[root@localhost~]#dockerstatsmycentos任務(wù)3.1認(rèn)識(shí)Docker技術(shù)相關(guān)知識(shí)3.1(10)其他容器管理命令。(e)dockertop命令。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 術(shù)后退行性變護(hù)理查房
- 控制體重的營養(yǎng)食譜
- 2025年高純高碳鉻軸承鋼及滲碳軸承鋼項(xiàng)目發(fā)展計(jì)劃
- 護(hù)理記錄的規(guī)范與護(hù)理質(zhì)量評(píng)價(jià)
- 護(hù)理分級(jí)標(biāo)準(zhǔn)的國際比較
- 護(hù)理法律法規(guī)知識(shí)普及視頻
- 員工懲處課件
- 人衛(wèi)護(hù)理實(shí)踐指南與案例分析
- 基礎(chǔ)護(hù)理體位角色扮演
- 產(chǎn)婦產(chǎn)后身心康復(fù)全攻略
- G-T 42582-2023 信息安全技術(shù) 移動(dòng)互聯(lián)網(wǎng)應(yīng)用程序(App)個(gè)人信息安全測評(píng)規(guī)范
- 國外慣性技術(shù)發(fā)展與回顧
- 國開2023秋《幼兒園教育質(zhì)量評(píng)價(jià)》形考任務(wù)123 大作業(yè)參考答案
- 課本劇西門豹治鄴劇本
- 移動(dòng)應(yīng)用程序權(quán)限管理與加固項(xiàng)目需求分析
- 中華人民共和國簡史學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 成都空港產(chǎn)業(yè)興城投資發(fā)展有限公司空中客車飛機(jī)全生命周期服務(wù)項(xiàng)目環(huán)境影響報(bào)告
- 回族上墳怎么念
- 繩結(jié)的各種打法
- 大眾滑雪智慧樹知到答案章節(jié)測試2023年沈陽體育學(xué)院
- GB/T 26480-2011閥門的檢驗(yàn)和試驗(yàn)
評(píng)論
0/150
提交評(píng)論