On boot, RancherOS scans /var/lib/rancher/preload/docker
and /var/lib/rancher/preload/system-docker
directories and tries to load container image archives it finds there, with docker load
and system-docker load
.
The archives are .tar
files, optionally compressed with xz
or gzip
. These can be produced by docker save
command, e.g.:
$ docker save my-image1 my-image2 some-other/image3 | xz > my-images.tar.xz
The resulting files should be placed into /var/lib/rancher/preload/docker
or /var/lib/rancher/preload/system-docker
(depending on whether you want it preloaded into Docker or System Docker).
Pre-loading process only reads each new archive once, so it won’t take time on subsequent boots (<archive>.done
files are created to mark the read archives). If you update the archive (place a newer archive with the same name) it’ll get read on the next boot as well.
Pre-loading process is asynchronous
by default, optionally this can be set to synchronous
through the cloud-config file or ros config set
command. In the following example, we’ll use the cloud-config file and ros config set
command to set RancherOS pre-loading process to synchronous
.
Available as of v1.4
cloud-config file, e.g.:
#cloud-config
rancher:
preload_wait: true
ros config set
command, e.g.:
$ ros config set rancher.preload_wait true
Pre-packing docker images is handy when you’re customizing your RancherOS distribution (perhaps, building cloud VM images for your infrastructure).