github.com/ggreg80/ketos@v0.0.0-20171109040536-049616f51ddb/docs/roadmap.md (about)

     1  Roadmap
     2  ====
     3  
     4  The core:
     5  
     6  * Research how does docker privileged mode work, if it is possible to use chroot without privileged flag in a container?
     7  	* Command chroot does need privileged mode to mount /dev folder, keeping researching command [fakechroot](https://github.com/dex4er/fakechroot) and [proot](https://github.com/proot-me/PRoot).
     8  	* It seems that [droot](https://github.com/yuuki/droot) can chroot to a docker image to execute applications.
     9  	* [cgroup](https://en.wikipedia.org/wiki/Cgroups) + [namespace](https://en.wikipedia.org/wiki/Namespace) -> [LXC](https://en.wikipedia.org/wiki/LXC) -> [libcontainer](https://github.com/opencontainers/runc/tree/master/libcontainer)
    10  	* This [article](http://hansenms.github.io/devops/tips/2016/02/22/chroot-from-docker.html) contains how to tar entire filesystem and chroot into it. Also contains a link to a script to copy some nessary files into chroot root..
    11  	* [Imitate](https://ericchiang.github.io/post/containers-from-scratch/) a docker runtime with chroot
    12  	* Also [fakeroot](http://freecode.com/projects/fakeroot) and [fakeroot-ng](https://fakeroot-ng.lingnu.com/) can pretend we are root user.
    13  
    14  * How to mount docker image to a folder as container's rootfs?
    15  	* See below docker image spec.
    16  
    17  Download base image and publish derived image to registry:
    18  
    19  * How to tar a folder storing docker layers to docker image?
    20  	* There are two version v1 & v2 of docker image format, still no clue why v1 still exists, compares about two is [here](https://www.slideshare.net/Docker/docker-registry-v2).
    21  	* details about [manifest-v2-2](https://docs.docker.com/registry/spec/manifest-v2-2/) and [manifest-v2-1](https://docs.docker.com/registry/spec/manifest-v2-1/)
    22  	* Version 2 manifest file spec is storing [here](https://github.com/docker/distribution/tree/master/docs/spec), with name `manifest-v2-1.md` and `manifest-v2-2.md`. The version 1 spec is [here](https://github.com/moby/moby/tree/master/image/spec).
    23  		* The docker image metadata seems marshal from [code `image.go`](https://github.com/moby/moby/blob/master/image/image.go)
    24  * Push image tar to docker registry.
    25  	* There is a project named [skopeo](https://git.io/vdcw6) can convert between docker image and OCI image, and seems can push to docker registry, see [this issue comment](https://git.io/vdc6g)
    26  		* Project skopeo using library [containers/image](https://github.com/containers/image) to manager registry communication.
    27  		* Project [containers/storage](https://github.com/containers/storage) can manage image layers.
    28  
    29  * Parsing Dockerfile, may accord to:
    30  	* [docker/docker/builder/dockerfile/parser](https://github.com/moby/moby/tree/master/builder/dockerfile/parser)
    31  	* [grammarly/rocker/src/parser](https://github.com/grammarly/rocker/tree/master/src/parser)
    32  	* [jlhawn/dockramp/build/parser](https://github.com/jlhawn/dockramp/tree/master/build/parser)
    33  
    34  * It seems [vx32](github.com/0intro/vx32) is another chroot solution
    35  	* [here](github.com/majek/vx32example) is an example
    36  	* [paper](https://swtch.com/~rsc/papers/vx32-usenix2008.pdf) and [some talks](https://news.ycombinator.com/item?id=12620205)