通过 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次。
有时我们只是希望暂时让容器暂停工作一段时间,比如要对容器的文件系统打个快照,或者 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
是删除镜像。