Skip to content

Files

Latest commit

1b7ebf0 · Mar 19, 2018

History

History
This branch is 1022 commits behind cloudfoundry/guardian:main.

rundmc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 19, 2018
Mar 19, 2018
Mar 9, 2018
Mar 8, 2018
Dec 22, 2017
Aug 31, 2017
Mar 14, 2018
Oct 30, 2017
Jun 29, 2017
Mar 19, 2018
Feb 28, 2018
Nov 7, 2017
Oct 11, 2017
Sep 7, 2015
Mar 6, 2018
Mar 6, 2018
Mar 14, 2018
Mar 14, 2018
Mar 19, 2018
Mar 19, 2018
Mar 19, 2018
Mar 19, 2018
Mar 19, 2018
May 19, 2017
May 19, 2017
Sep 7, 2015
Aug 8, 2016
Aug 8, 2016

RunDMC - Diminuatively Managed RunC Containers

RunDMC is a small wrapper around runC.

High Level Architecture

Each container is stored as a subdirectory of a directory called 'the depot'. The depot is the source of truth for RunDMC, when a container is created, this amounts to creating an Open Container Spec compliant container as a subdirectory of the depot directory. The subdirectory is named after the container's handle. Looking up a container amounts to checking for the presence of a subdirectory with the right name.

To execute processes in a container, we launch the runc binary inside the container directory and pass it a custom process spec. Since we want to control the container lifecycle via the API without the restriction that the container dies when its first process dies, the containers are always created with a no-op initial process that never exits. User processes are all executed using runc exec.

The process_tracker allows reattaching to running containers when RunDMC is restarted. It holds on to process input/output streams and allows reconnecting to them later.