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 ---------------------------|
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答
圖片精選