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的這種機制就好。)