计算机网络/计算机科学与应用/系统/运维/开发

第八章、Docker 停止容器

停止容器 ,主要使用命令 pause/unpause 、stop 和 prune  子命令


一、暂停容器

语法:docker  [container]  pause  CONTAINER [ CONTAINER.... ] 

作用:暂停一个或多个运行中的容器


实例,启动一个容器,并查看运行状态

[root@iZ2zea4u8pasyhtllbo54oZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
9068267d0668        mysql               "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-stu

实例,暂停容器

# docker pause mysql-stu


实例,查看容器状态STATUS 为paused,就表示容器为暂停状态

[root@iZ2zea4u8pasyhtllbo54oZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                               NAMES
9068267d0668        mysql               "docker-entrypoint.s…"   About an hour ago   Up About an hour (Paused)   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-stu


二、恢复暂停中的容器

处于paused 状态的容器,可以使用  docker  [container] unpause  CONTAINER  [ CONTAINER...] 命令恢复容器状态

语法: docker  [container]  unpause CONTAINER  [CONTAINER...]


实例,恢复暂停中的容器

#docker container unpause mysql-stu


三、终止容器

语法:docker  [ container ]  stop  [ -t |--time [ =10 ] ] [ CONTAINER... ]

作用:终止一个运行中的容器


该命令会首先向容器发送SIGTERM信号,等待一段超时时间后(默认为10秒),再发送SIGKILL信号来终止容器

# docker stop mysql-stu

此时,执行docker container prune命令,会自动清除掉所有处于停止状态的容器

此外,还可以通过docker [container] kill直接发送SIGKILL信号来强行终止容器


当Docker容器中指定的应用终结时,容器也会自动终止


例如,只启动了一个终端的容器,用户通过exit命令或Ctrl+d来退出终端时,所创建的容器立刻终止,处于stopped状态

可以用docker ps -qa命令看到所有容器的ID

# docker ps -qa
9068267d0668


处于终止状态的容器,可以通过docker [container] start命令来重新启动

语法:docker container  start  容器id或容器名


实例:启动已经停止的mysql-stu容器

# docker container satrt mysql-stu


docker [container] restart 命令会将一个运行态的容器先终止,然后再重新启动

# docker container restart mysql-stu


如果在重启容器时,报以下错误,则需要重新启动容器后再重启容器

# docker start mysql-stu
Error response from daemon: driver failed programming external connectivity on endpoint mysql-stu (39543bb3a61dc1fe02c06f284628e337874435198ab8a26281d7c5f1f6436eee):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.18.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1))
Error: failed to start containers: mysql-stu
# systemctl restart docker   重启docker
# docker start mysql-stu     重启容器

Docker

所谓坚持,就是从种子种下到开花结果需要等待的时间。

评论

^