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對應(yīng)的容器簿透。 -
方式二:
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容器中并沒有配置項目或者其他應(yīng)用派阱,也就是沒有對外提供的服務(wù)诬留,就導(dǎo)致Docker發(fā)現(xiàn)該容器前臺沒有運行的應(yīng)用,這樣的容器啟動后Docker會立即殺掉贫母,因為Docker覺得他沒事可做了文兑。
所以,最佳的解決方案是腺劣,將你要運行的程序以前臺進程的形式運行绿贞,就是這種容器加上-it
參數(shù)運行。
如下:
(這種模式也是有使用場景的橘原,我們先知道Docker的這種機制就好籍铁。)