上QQ阅读APP看书,第一时间看更新
4.2 停止容器
本节主要介绍Docker容器的pause/unpause、stop和prune子命令。
1.暂停容器
可以使用docker [container] pause CONTAINER [CONTAINER...]命令来暂停一个运行中的容器。
例如,启动一个容器,并将其暂停:
$ docker run --name test --rm -it ubuntu bash $ docker pause test $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 893c811cf845 ubuntu "bash" 2 seconds ago Up 12 seconds (Paused) test
处于paused状态的容器,可以使用docker [container] unpause CONTAINER [CONTAINER...]命令来恢复到运行状态。
2.终止容器
可以使用docker [container] stop来终止一个运行中的容器。该命令的格式为docker [container] stop [-t|--time[=10]] [CONTAINER...]。
该命令会首先向容器发送SIGTERM信号,等待一段超时时间后(默认为10秒),再发送SIGKILL信号来终止容器:
$ docker stop ce5 ce5
此时,执行docker container prune命令,会自动清除掉所有处于停止状态的容器。
此外,还可以通过docker [container] kill直接发送SIGKILL信号来强行终止容器。
当Docker容器中指定的应用终结时,容器也会自动终止。例如,对于上一章节中只启动了一个终端的容器,用户通过exit命令或Ctrl+d来退出终端时,所创建的容器立刻终止,处于stopped状态。
可以用docker ps -qa命令看到所有容器的ID。例如:
$ docker ps -qa ce554267d7a4 d58050081fe3 e812617b41f6
处于终止状态的容器,可以通过docker [container] start命令来重新启动:
$ docker start ce554267d7a4 ce554267d7a4 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ce554267d7a4 ubuntu:latest "/bin/sh -c 'while t 4 minutes ago Up 5 seconds determined_pike
docker [container] restart命令会将一个运行态的容器先终止,然后再重新启动:
$ docker restart ce554267d7a4 ce554267d7a4 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ce554267d7a4 ubuntu:latest "/bin/sh -c 'while t 5 minutes ago Up 14 seconds determined_pike