【現(xiàn)學現(xiàn)忘Docker基礎】— 11.Docker常用命令:容器常用命令(二)

5、重啟容器

就是重新啟動一個容器。

命令:docker restart 容器ID或者容器名

示例

先查看當前宿主機的容器狀態(tài)。

然后重啟第一個容器,ID為14b077f2496b,名稱為mycentos。

這里我們一定要注意看STATUS狀態(tài)為Up 2 hours

我們重啟該容器,并查看他的啟動時間,



我們可以看到重啟之后,mycentos容器的啟動時間變?yōu)榱?秒,說明該容器進行了重啟。

6、停止容器

停止正在運行的容器。(正常關(guān)閉容器)

命令:docker stop 容器ID或者容器名

演示:

先查看當前宿主機的容器狀態(tài)。



執(zhí)行命令關(guān)閉第三個容器,如下圖:


7、強制停止容器

停止正在運行的容器。(暴力關(guān)閉容器)

命令:docker kill 容器ID或者容器名

演示:

先查看當前宿主機的容器狀態(tài)。


執(zhí)行命令,強制關(guān)閉第二個容器,如下圖:


8、刪除已停止的容器

命令:docker rm 容器ID

(1)刪除一個已停止的容器

先查看當前宿主機的容器狀態(tài)。



刪除第一個正在運行的容器,如下:

[root@192 ~]# docker rm 14b077f2496b
Error response from daemon: You cannot remove a running container 14b077f2496b3c11d041a8bb138f60b32538ddedebe88245dc805a25669d0d83. Stop the container before attempting removal or force remove

守護進程daemon會提示我們,您不能刪除正在運行的容器,請先停止容器。

如果需要刪除正在運行的容器,加-f參數(shù),進行強制刪除。

那我們接下來刪除第二個容器,如下:


可以看到,第二個容器已經(jīng)刪除,現(xiàn)在宿主機上只有3個容器了。

(2)一次性刪除多個已停止的容器

命令:docker rm 容器1ID 容器2ID 容器3ID ...

示例:

刪除第二第三個容器,如下:

[root@192 ~]# docker rm 136475a80d92 5b6c5748a7b9
136475a80d92
5b6c5748a7b9
[root@192 ~]# docker ps -a 
CONTAINER ID   IMAGE          COMMAND       CREATED       STATUS        PORTS  NAMES
14b077f2496b   300e315adb2f   "/bin/bash"   3 hours ago   Up 19 minutes        mycentos

我們可以看到,此時宿主機上只有一個容器了。

(3)刪除所有本機已停止的容器

  • 方式一:

    命令:docker rm -f $(docker ps -aq)

    說明:docker rm -f 刪除所有docker ps -aq命令顯示容器ID對應的容器。

  • 方式二:

    docker ps -aq| xargs docker rm

    說明:docker ps -aq命令執(zhí)行的結(jié)果,通過管道符,傳遞給后邊的xargs。

    xargs是給命令傳遞參數(shù)的一個過濾器,以將管道或標準輸入的數(shù)據(jù)轉(zhuǎn)換成參數(shù)。

9、后臺啟動容器

后臺啟動容器也叫啟動守護式容器。

命令:docker run -d 鏡像ID或鏡像名

查看本地鏡像

[root@192 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    300e315adb2f   3 months ago   209MB

以后臺模式啟動centos容器

# 使用鏡像`centos:latest`以后臺模式啟動一個容器
[root@192 ~]# docker run -d centos
57fbb28467164eedf38f118530807840cdaab8497c43d6741a93c36f7ea408a3

執(zhí)行命令后,返回了創(chuàng)建容器的ID,說明該容器一定啟動了。

我們通過docker ps命令查看啟動的容器

[root@192 ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

發(fā)現(xiàn)此時宿主機中并沒有正在運行的容器。

通過docker ps -a命令查看本地容器


可以發(fā)現(xiàn)57fbb2846716容器確實被創(chuàng)建過了。

重點:

這里就有問題了,使用后臺模式啟動容器,然后使用docker ps -a命令查看到centos容器已經(jīng)停止了。

很重要的說明的一點:Docker容器后臺模式運行,但是容器中要必須有一個前臺進程運行。

Docker容器的運行,如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的,這個是Docker的機制問題。

說明:

比如,Docker中的容器,我們還以centos容器為例進行說明。

在Docker中centos容器使用后臺進程模式運行,而centos容器中并沒有配置項目或者其他應用,也就是沒有對外提供的服務,就導致Docker發(fā)現(xiàn)該容器前臺沒有運行的應用,這樣的容器啟動后Docker會立即殺掉,因為Docker覺得他沒事可做了。

所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行,就是這種容器加上-it參數(shù)運行。

如下:



(這種模式也是有使用場景的,我們先知道Docker的這種機制就好。)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容