(编辑:jimmy 日期: 2025/11/6 浏览:2)
Docker Runc容器生命周期
容器的生命周期涉及到内部的程序实现和面向用户的命令行界面,runc内部容器状态转换操作、runc命令的参数定义的操作、docker client定义的容器操作是不同的,比如对于docker client的create来说,
语义和runc就完全不同,这一篇文章分析runc的容器生命周期的抽象、内部实现以及状态转换图。理解了runc的容器状态转换再对比理解docker client提供的容器操作命令的语义会更容易些。
容器生命周期相关接口
接口在内部的实现
对用户暴露的命令行参数与容器接口的对应关系,以linux容器为例
runc命令行的动作序列对容器状态机的影响
delete
|------| /-------------------------------------------------------------|
| | / |----- start ---| |
| V / | | |
|---------| ----------- create ----------> |---------|<---------/ |
| stopped | | created |------------| |
|---------| <-------- delete(with kill)--- |---------| | |
^ ^ | | |
| | | | run
| |--------------- delete(-f with kill) ---| exec | |
delete(-f with kill) | | | |
| | | | |
| resume | V | |
|---------| -----------------------------> |----------| | |
| paused | | running |<----------|-------|
|---------| <---------------------------- |----------| |
^ pause ^ | |
| | | |
| |--exec--| |
| |
|--------------------------- pause ---------------------------|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!