runC is a CLI tool produced through the Open Container Project for spawning and running containers without having to run a Docker daemon. It makes use of libcontainer which powers the Docker Engine.
Let's take 30 seconds to try it out.
What you need:
- runc package or binary installed
- A root filesystem
runc package
I'm using Arch Linux which has runc available in the package repository and is installed along with Docker 1.11.
$ sudo pacman -Sy runc
For Ubuntu 16.04 use apt
:
sudo apt install runc
rootfs
We can either prepare a root-filesystem from scratch, extract one from a Linux distribution's rootfs.tgz file or export one from a container already run in Docker.
Let's extract a rootfs from a Docker image by running a container, then using docker export
.
$ docker run --name node4 mhart/alpine-node:4 node
$ docker export node4 > rootfs.tar
$ mkdir -p ./rootfs
$ tar -xf rootfs.tar -C ./rootfs
Now generate a config file for runc
and start the container. You will be given a Node.js REPL.
$ runc spec
Finally, pick a name for the new container and run it as root or sudo - launch node
and try out a few commands:
$ sudo runc start node4_repl
/ # node
> process.version
'v4.4.1'
>
Running the example on my machine:
Running the example in bash.
Learn more
Both runc and Docker make use of libcontainer but have very different CLIs. If you would like to learn more about how to customise runc, add networking and much more then check out the official homepage at: runc.io or the Github repo.
Popular on the blog this week:
-
My Dockercon Hack: IoT Cluster (as re-tweeted by Solomon Hykes, Docker creator)