溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Docker客戶端管理容器

發(fā)布時間:2021-11-11 15:23:20 來源:億速云 閱讀:351 作者:小新 欄目:服務器

這篇文章主要介紹了如何使用Docker客戶端管理容器,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

傳統(tǒng)上,在管理物理服務器或虛擬機時,我們只需要連接RDP(運行Windows時)或SSH(運行Linux時)來訪問控制臺,然后從那里執(zhí)行任務。然而,容器被設計成是準備好可以用于生產(chǎn)的。從理論上講,我們不應該像以前的IT人員樣每天管理它們。但是,理解如何執(zhí)行此類故障排除任務以及理解技術(shù)也是很重要的。

運行容器

IT人員在創(chuàng)建容器時可能犯的第一個錯誤是忘記映像和容器之間的關系。兩者有一種關系是,一個映像允許創(chuàng)建N個容器。請記住,映像是只讀的,而當我們創(chuàng)建容器時,有一個薄的讀寫層,它允許我們將數(shù)據(jù)寫入容器,并且該數(shù)據(jù)將在容器生命周期中持久存在。

另一個重要的要點是,容器被設計為運行單個應用程序,如果該應用程序被終止,我們可以假設容器也將被停止。

為什么這么說?讓我們舉一個簡單的例子:我們希望立即執(zhí)行docker run alpine以及容器退出,所以我們使用-it,這迫使它進行交互并使用當前終端。因為我想讓這個會話在后臺運行,所以使用鍵盤按鍵Ctrl + p,然后Ctrl + q,這樣重復四次,如下圖所示。

挑戰(zhàn)在于:如果你不指定容器的名稱,那么Docker基于自身的算法將為你創(chuàng)建一個名字,但如果我們試圖復制一個文件到一個特定的容器中,盡管它們共享相同的映像和有相同的應用程序,我們?nèi)孕枰軌蜃R別容器。因為稍后很可能我們將不記得那個名稱或容器ID信息。

如何使用Docker客戶端管理容器

如果我們將一個文件復制到第一個容器(例如cranky_pike),那么只有這個容器會有該文件,假設你不記得容器名稱或ID,這種情況下最好的解決方案是習慣性地使用開關(switch)--name<name>以對相應的容器貼標簽,這些開關可以在創(chuàng)建容器使用。

由于我們處于當前場景中,如果我們需要返回任何給定容器的shell,我們可以利用docker container attach <container-name> 命令。

注意:你可以使用容器名稱或任何字符串作為容器的唯一標識。我們不需要輸入整個容器ID,在這種情況下,我可以只使用字母“f”,因為這個容器是唯一一個以“f”開頭的。

如何使用Docker客戶端管理容器

我當前的容器列表是空的,為什么?

Docker客戶端命令docker container list只列出活動的容器。要獲得所有容器的列表,只需在同一個Docker客戶端命令的末尾添加開關 --all(如下圖所示)。

如何使用Docker客戶端管理容器

現(xiàn)在如果我想回到一個特定的容器,去檢查一些東西或抓取一個文件,我該怎么做?第一件事是啟動容器,然后返回會話。美妙之處在于,用于創(chuàng)建的命令也可以用于啟動容器(這是有意義的),因此不需要傳遞額外的參數(shù)。使用以下Docker客戶端命令,我們就能夠啟動任何已停止的容器。

docker container start <container-name-or-ID>
docker container attach <container-name-or-ID>

有辦法自動清理未使用的容器嗎?

沒有。如果我們在創(chuàng)建容器時使用開關--rm,我們就在容器上設置了一個標記,一旦容器退出,它就會被移除。使用此選項時需要非常小心。

docker run -it --name <container-name> --hostname <container-name> --rm alpine

如何使用Docker客戶端管理容器

如果希望通過一行代碼刪除所有容器,下面就是了(前兩行和最后一行只是為了顯示創(chuàng)建一行的邏輯)。請記住,我們正在刪除所有容器,所以使用它的風險由您自己承擔。

docker container list
docker container list -aq
docker container rm $(docker container list -aq) -f
docker container list

如何使用Docker客戶端管理容器

-name開關有幫助,但是VM內(nèi)部的名稱沒有定義

下面是關于如何解決這個問題的方法。使用--name參數(shù)將定義給定容器打的標簽。如果我們想在容器中配置名稱,我們需要一個額外的參數(shù)(--hostname)。下面突出顯示了用于容器的語法示例。我們連接到給定容器的外殼,并檢查Linux容器中使用的名稱。 

docker run -it --hostname container002 --name container002 alpine

如何使用Docker客戶端管理容器在容器上執(zhí)行命令

有時候在管理容器時,在容器上運行命令會更容易,從而節(jié)省在其他地方進行故障排除的時間。我們可以使用docker container exec命令在任何給定容器上觸發(fā)特定的命令。

為了便于說明,前兩個命令(hostname和ipconfig)在主機上執(zhí)行。為了直接從容器中獲取信息,我們可以使用以下命令:

docker container exec <container-name> <command>

如何使用Docker客戶端管理容器

連接到控制臺(Linux和Windows)

在使用Windows容器(Windows操作系統(tǒng))時,我們可以執(zhí)行cmd,這會給我們帶來容器的命令提示。下面的Docker客戶端命令提供了標簽為webserver的容器控制臺。

docker container exec -it webserver cmd

如果你想使用Linux,我們只需要更改命令指令。以下命令可用于Linux容器:

docker container exec -it <container-name> /bin/sh

如果我們在執(zhí)行Docker命令時使用PowerShell,首先會注意的是CMD的黑色背景。下面圖像上執(zhí)行的所有其他命令都在容器級別執(zhí)行。如果你不確定,機器的名稱也是一個很好的指示,還可以使用tasklist檢索進程的數(shù)量。

如何使用Docker客戶端管理容器

管理容器:有待深入

讀過這篇文章后,是否意味著我們對容器管理了如指掌了呢?當然不是!我們才剛剛開始!如果你想繼續(xù)探索和嘗試新事物,可以試試這兩個Docker客戶端命令:

docker container --help
docker container run—help

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用Docker客戶端管理容器”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI