Skip to content

Commit

Permalink
Add lifecycle for containers
Browse files Browse the repository at this point in the history
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 <mrunalp@gmail.com>
  • Loading branch information
mrunalp committed Oct 23, 2015
1 parent e71b6dd commit afdd2ee
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit afdd2ee

Please sign in to comment.