isoc is yet another "standard" container format.
It brings together the best bits of Docker Image Specification 1.0 and App Container Specification 0.3.0+git into a comprehensive yet portable container archive format, at the cost of a "few" duplicated bytes.
An isoc image is a appc image embedded in a docker image, but also a docker image embedded in a appc image. Some people might describe it as an iso-contained container format.
example.isoc
repositories
manifest
rootfs/VERSION
rootfs/layer.tar
rootfs/json
rootfs/<files>
rootfs/...
This gist comes with a reference implementation called ✂
(or ciso) to create isoc images from rootfs tarballs.
cat rootfs.tar | NAME= COMMAND= ✂ > image.isoc
$ git clone https://gist.github.com/20ca5dec630aafc1d35c.git; cd 20ca5dec630aafc1d35c
$ cat busybox.tar | NAME=isoc/hello COMMAND="/bin/echo make container not war" ./✂ > hello.isoc
$ docker load < hello.isoc
$ docker run isoc/hello
make container not war
$ rkt run hello.isoc
/etc/localtime is not a symlink, not updating container timezone.
make container not war
Sending SIGTERM to remaining processes...
Sending SIGKILL to remaining processes...
Unmounting file systems.
Unmounting /proc/sys/kernel/random/boot_id.
All filesystems unmounted.
Halting system.