容器状态
下图是我对容器状态的理解
下面对容器的几种状态进行操作
首先运行一个容器
查看容器状态处于exited
此时使用start命令可以将容器b1从die状态重新启动为running状态,并进行交互
在另一个窗口即可查看b1容器已经在运行
此时我们可以将running状态的b1容器变为pause阻塞状态
查看容器状态
测试在容器b1交互窗口输入ls命令,发现没有任何反应
取消b1的pause的阻塞状态,并查看容器状态,变为running
这个时候再去看交互窗口,发现ls命令出现了
将running状态的b1容器进行强制停止,进入die状态
交互窗口也自动进行关闭
将die状态的b1容器进行重新启动
进入容器b1内部
将running状态的b1容器进行优雅关闭
我们可以删除停止状态的b1,再次查看发现b1已经彻底没有了
此处说明docker run = docker create + docker start
创建容器b1,查看容器处于create状态
启动容器b1,进入running状态
docker stop和 docker kill有什么区别?
docker stop是优雅关闭容器,先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。
docker kill,发送SIGKILL信号,应用程序直接退出。
docker start 和 docker restart之间的区别
docker start 包含容器文件系统挂载的操作
docker restart不包含容器文件系统的卸载与挂载操作,本质上docker restart不涉及文件系统的操作,因此restart命令并不是stop与start两个命令的顺序叠加。
docker pause作用
暂停一个或多个容器中的所有进程
恢复一个或多个容器中的所有进程
docker run 参数整理
参数 | 作用 |
-it | 交互式运行 |
-a | 附加到终端 |
–rm | 容器关闭后自动删除 |
-d | 容器后台运行,比如nginx |
-i | 让容器的标准输入保持打开,通常与 -t 同时使用; |
-h | 主机名 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用; |
Docker基础篇(5)- Docker容器常用基础命令Docker基础篇(7)- Docker运行nginx、redis容器