A toolkit for building secure, portable and lean operating systems for containers
Go to file
Tycho Andersen 437634cab1 better debugging output in some error cases
from:

2017/03/07 09:59:30 Failed to extract kernel image and tarball

to

2017/03/07 10:06:04 Failed to extract kernel image and tarball: Unable to find image 'mobylinux/kernel:7fa748810d7866797fd807a5682d5cb3c9c98111' locally

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-03-07 10:50:12 -08:00
base More cleanup 2017-03-07 13:05:53 +00:00
docs docs: add short how-to for running Moby on GCP 2017-02-08 17:35:05 +00:00
ebpf Move ebpf to top level 2017-02-01 10:58:52 +00:00
kernel kernel: Update 4.9.x patches 2017-03-07 14:04:53 +00:00
licensing Use Alpine 3.5 2016-12-22 13:40:28 -08:00
pkg Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
scripts Cleanup after merge 2017-03-07 12:23:53 +00:00
tools infrakit: Use the moby tool naming convention to select moby builds 2017-03-07 16:09:26 +00:00
vendor Rough first version of the moby tool 2017-02-20 21:44:23 +00:00
.datakitci.json Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
.gitignore Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
config.go Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
main.go better debugging output in some error cases 2017-03-07 10:50:12 -08:00
Makefile Cleanup after merge 2017-03-07 12:23:53 +00:00
moby.yaml Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
output.go Out with the old, in with the new Moby 2017-03-06 22:28:41 +00:00
README.md Add some more info about config file 2017-03-07 13:39:45 +00:00
test.yaml More cleanup 2017-03-07 13:05:53 +00:00
vendor.conf Rough first version of the moby tool 2017-02-20 21:44:23 +00:00

Moby, a toolkit for custom Linux distributions

Simple build instructions: use make to build.

make qemu will boot up a sample in qemu in a container; on OSX make hyperkit will boot up in hyperkit. make test or make hyperkit-test will run the test suite.

Requires GNU make, GNU or BSD tar (not Busybox tar) and Docker to build.

To customise, copy or modify the moby.yaml and then run ./bin/moby file.yaml to generate. You can run the output with ./scripts/qemu.sh or ./scripts/hyperkit.sh.

The Yaml format is loosely based on Docker Compose:

  • kernel specifies a kernel Docker image, containing a kernel and a filesystem tarball, eg containing modules. mobylinux/kernel is built from kernel/
  • init is the base init process Docker image, which is unpacked as the base system, containing init, containerd, runc and a few tools. Built from base/init/
  • system are the system containers, executed sequentially in order. They should terminate quickly when done.
  • daemon is the system daemons, which normally run for the whole time
  • files are additional files to add to the image
  • outputs are descriptions of what to build, such as ISOs.

For the images, you can specify the configuration much like Compose, with some changes, eg capabilities must be specified in full, rather than add and drop, and there are no voluems only binds.

The config is liable to be changed, eg there are missing features (specification of kernel command line, more options etc).