(Cross-posted to the http://devel.unikernel.org/ forum to catch the attention of other projects, feel free to comment here or there)
Hi all, I'd like to announce 'unikernel-runner', which provides a base image you can use to build and run rumprun unikernels as Docker containers: https://github.com/mato/unikernel-runner TL;DR, cut and paste to try it: Requirements: An x86_64 machine with Docker and KVM, though the latter is not required. To run the example unikernel-mathopd image, which contains a web server: CID=$(docker run -d --device /dev/kvm:/dev/kvm \ --device /dev/net/tun:/dev/net/tun --cap-add NET_ADMIN \ mato/unikernel-mathopd) CIP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CID) curl http://${CIP}/ If you don't have/want to run with KVM acceleration, you can omit the pass through of /dev/kvm, in which case the unikernel will be run using software emulation only. You can find more details, including instructions on how to build your own unikernel images using unikernel-runner as a base, in the README[1]. Background: Unikernel-runner is an extension of the DockerCon EU demo[2] from last November, with the following notable improvements: - A generic, re-usable, minimal base image containing exactly two executables (unikernel-runner and a stripped down build of qemu). - Integration with the work in progress Rumprun configuration specification[3]. - Does not rely on macvtap to provide L2 connectivity to the unikernel, so no kernel patching is required. My intent with unikernel-runner is to use it as a platform to experiment with: 1. Improving Docker/unikernel integration.(e.g. native support for L2 connectivity so that CAP_NET_ADMIN is not required) 2. Use it as a "higher level stack" client for the rumprun configuration specification, so that I can validate and test that work. 3. Supporting other unikernel projects, either by adding specific support to unikernel-runner or getting other projects on board with using the configuration spec. 4. Distributing "ready-to-run" binary unikernels using Docker Hub. This ties in with David Halls' work[4], and completes the stack with Docker+KVM providing the "run" part. Enjoy, Martin [1] https://github.com/mato/unikernel-runner/blob/master/README.md [2] https://github.com/Unikernel-Systems/DockerConEU2015-demo [3] https://github.com/rumpkernel/rumprun/blob/mato-wip-rumprun-config/doc/config.md [4] http://www.freelists.org/post/rumpkernel-users/Nodejs-distribution
