The current Docker/OCI image format uses TAR archives, which are created for each of Dockerfile `RUN` changesets, for representing rootfs layers. One of the problems with this format is that a container cannot be started until all the TAR archives are downloaded. Also, the format has limitations in concurrency of downloading, and granularity of file deduplication among different versions of images.
FILEgrain solves these problems by using content-addressable store in the granularity of files, rather than of TAR archives, in the transport-agnostic way. Since the files can be lazily downloaded, a container can be started without downloading whole the image. The experimental result with 633MB of Java image shows that downloading 4MB of files is enough for running sh, 87MB for JRE, and 136MB for JDK.
Further information are available at https://github.com/AkihiroSuda/filegrain .
Akihiro Suda is a software engineer at NTT Corporation, a Japan-based telecommunication company. He has been a maintainer of several opensource container software such as Moby, BuildKit, containerd, runc, and Lima. He has previously talked at several FLOSS conferences such as KubeCon... Read More →