1. 程式人生 > >容器常用操作 - 每天5分鐘玩轉 Docker 容器技術(25)

容器常用操作 - 每天5分鐘玩轉 Docker 容器技術(25)

技術 order position 自動 code lec 資源 add 服務

前面討論了如何運行容器,本節學習容器的其他常用操作。

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)