docker 生命周期
创建 create:
docker create [参数] 镜像名称[容器执行命令][执行命令时需要提供的参数]
常用参数:
-t 分配一个虚拟终端
-i 提供一个模拟输入,不提供则无法输入默认命令
–name 为创建好的容器提供一个容器名,不提供的话随机分配一个
启动 docker start
命令格式:docker start [参数] 容器[容器…]
常用参数:
-a 将当前的输入/输出连接到容器
-i 将当前的输入连接到容器上
创建并启动 docker run
命令格式:
docker run [参数] 镜像 [容器执行命令] [执行命令提供的参数]
常用参数:
-t 分配一个虚拟终端
-i 保持输入打开
-d 容器后台运行,并打印容器id
–rm 容器结束后自动删除容器
run 和 start 的区别
docker run 后面跟的是镜像,就是将镜像放到容器中,这一步相当于create,然后再进行启动,相当于start
docker start 后面跟的是容器,相当于启动一个之前已经启动过的容器
暂停 docker pause/unpause
命令格式:
docker pause/unpause 容器[容器…]
注意:调试过程中使用,暂停容器中得所有进程
关闭 docker stop
命令格式:
docker stop 容器[容器…]
常用参数:
-t 关闭前的等待时间,默认是10秒
终止 docker kill
Docker引擎通过containerd使用SIGKILL发向容器主进程,等待一段时间后,如果从containerd收到容器退出消息,那么容器Kill成功
在上一步中如果等待超时,Docker引擎将跳过Containerd自己亲自动手通过kill系统调用向容器主进程发送SIGKILL信号。如果此时kill系统调用返回主进程不存在,那么Docker kill成功。否则引擎将一直死等到containerd通过引擎,容器退出
docker kill 和 stop 的区别
kill 是强制退出手段,不管容器是否同意,直接kill 。
stop 的话是先给容器内发送 SIGTERM 命令,允许做一些优雅退出保护手段。如果一段时间超时后(默认10秒),容器还是没有停止,再进行kill 操作,强行停止。
重启 docker restart
命令格式:
docker restart [参数] 容器[容器…]
常用参数:
-t 关闭前的等待时间,默认是10秒,实则是关闭前的等待时间
删除 docker container rm / docker rm
容器删除(docker container rm / docker rm )
命令格式:docker container rm [参数] 容器[容器…]
常用参数:
-f 强制删除
-v 删除容器的同时删除容器的数据卷