docker stop
命令用于停止正在運行的Docker容器。在使用docker stop
命令時,需要注意以下幾點:
優雅地停止容器:docker stop
命令會發送一個SIGTERM信號給容器中的主進程,讓容器有機會執行清理操作并正常關閉。默認情況下,docker stop
會等待10秒,如果在這段時間內容器沒有停止,它將發送一個SIGKILL信號強制停止容器。你可以通過添加--time
或-t
選項來指定等待時間,例如docker stop --time 30
表示等待30秒。
強制停止容器:如果你不確定容器是否能夠在指定的時間內正常關閉,可以使用--time
或-t
選項后跟一個數字來強制停止容器。例如,docker stop --time 0
表示立即停止容器,不等待任何清理操作。請注意,強制停止容器可能導致數據丟失或其他副作用,因此應謹慎使用。
信號傳遞:docker stop
命令發送的是SIGTERM信號,而不是其他信號(如SIGKILL)。SIGTERM信號允許容器中的主進程執行清理操作,如關閉連接、保存數據等。如果你需要立即停止容器,可以使用docker kill
命令發送SIGKILL信號,例如docker kill --signal=SIGKILL <container_id>
。
容器狀態:在容器被停止后,它的狀態將變為exited
。你可以使用docker ps -a
命令查看所有容器(包括已停止的容器)的狀態。要重新啟動已停止的容器,可以使用docker start <container_id>
命令。
日志管理:當容器被停止時,其日志文件仍然保留在主機上。你可以使用docker logs <container_id>
命令查看容器的日志。如果需要清理停止容器的日志文件,可以使用docker rm <container_id>
命令刪除容器。