From afdd2ee8d499807b37d279f26550e8a754da29e6 Mon Sep 17 00:00:00 2001 From: Mrunal Patel Date: Thu, 22 Oct 2015 15:50:40 -0400 Subject: [PATCH] Add lifecycle for containers The lifecycle described is generic and should apply all platforms. It provides leeway for the runtimes to be flexible in how they implement it. Signed-off-by: Mrunal Patel --- runtime.md | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/runtime.md b/runtime.md index fdaf96519..a51324571 100644 --- a/runtime.md +++ b/runtime.md @@ -34,22 +34,21 @@ This is provided so that consumers can find the container's configuration and ro ``` ## Lifecycle - -### Create - -Creates the container: file system, namespaces, cgroups, capabilities. - -### Start (process) - -Runs a process in a container. -Can be invoked several times. - -### Stop (process) - -Not sure we need that from runc cli. -Process is killed from the outside. - -This event needs to be captured by runc to run onstop event handlers. +The lifecycle describes the timeline of events that happen from when a container is started to when it is stopped or crashes unexpectedly. + +1. OCI compliant runtime is invoked by passing the bundle path as argument. +2. The container's runtime environment is created. +3. The container's state is written to the filesystem. +4. The prestart hooks are invoked by the runtime. + If any prestart hook fails, then the container is killed (step 8) and an error code is returned. +5. The user specified process is executed in the container. +6. The poststart hooks are invoked by the runtime. + If any poststart hook fails, then the container is killed (step 8) and an error code is returned. +7. Additional actions such as pausing the container, checkpointing the container, resuming the container or signaling the container may be performed using the runtime interface. + The container could also error out or crash. +8. The container is destroyed by undoing the steps performed during create phase if required. +9. The poststop hooks are invoked by the runtime and errors, if any, are logged. +10. The state associated with the container is removed and the return code of the container is returned or logged. ## Hooks