容器常用操作 - 每天5分鐘玩轉 Docker 容器技術(25)
前面討論了如何運行容器,本節學習容器的其他常用操作。
stop/start/restart 容器
通過 docker stop
可以停止運行的容器。
容器在 docker host 中實際上是一個進程,docker stop
命令本質上是向該進程發送一個 SIGTERM 信號。如果想快速停止容器,可使用 docker kill
命令,其作用是向容器進程發送 SIGKILL 信號。
對於處於停止狀態的容器,可以通過 docker start
重新啟動。
docker start
會保留容器的第一次啟動時的所有參數。
docker restart
可以重啟容器,其作用就是依次執行 docker stop
和docker start
。
容器可能會因某種錯誤而停止運行。對於服務類容器,我們通常希望在這種情況下容器能夠自動重啟。啟動容器時設置 --restart
就可以達到這個效果。
--restart=always
意味著無論容器因何種原因退出(包括正常退出),就立即重啟。該參數的形式還可以是 --restart=on-failure:3
,意思是如果啟動進程退出代碼非0,則重啟容器,最多重啟3次。
pause/unpause 容器
有時我們只是希望暫時讓容器暫停工作一段時間,比如要對容器的文件系統打個快照,或者 dcoker host 需要使用 CPU,這時可以執行 docker pause
。
處於暫停狀態的容器不會占用 CPU 資源,直到通過 docker unpause
恢復運行。
刪除容器
使用 docker 一段時間後,host 上可能會有大量已經退出了的容器。
這些容器依然會占用 host 的文件系統資源,如果確認不會再重啟此類容器,可以通過 docker rm
刪除。
docker rm
一次可以指定多個容器,如果希望批量刪除所有已經退出的容器,可以執行如下命令:
docker rm -v $(docker ps -aq -f status=exited)
順便說一句:docker rm
是刪除容器,而 docker rmi
是刪除鏡像。
一下學了這麽多操作,很有必要做個總結。下一節我們會用一張圖來描述容器的狀態機。
容器常用操作 - 每天5分鐘玩轉 Docker 容器技術(25)