How an import works
snapshot import starts a throwaway machine and pulls the image there with Docker. It lays the image’s
files over the machine’s own, then restarts the machine to check that it boots and answers. Last, it
saves the machine as a snapshot and deletes the throwaway machine. The throwaway machine is an
agent-browser one and counts while it runs.
What a machine from an image has
- The image’s files win: its programs, libraries,
/usr/local,/opt,/root,/home,/appand its users. - Its
ENVreaches every session (exec, SSH, login shells), and the directories itsPATHadds come first. - Its
ENTRYPOINTandCMDrun as theinstabox-image.servicesystemd unit, in itsWORKDIR, as itsUSER(root when unset), restarted on failure. Read the output withjournalctl -u instabox-image.service.--no-entrypointleaves the unit out. - What makes it a machine stays: systemd, sshd, sudo, the machine’s user (UID 1000, so the image’s
user with that ID, such as
node, is that user),/dataand the shared libraries the machine’s own programs load. /etc/instabox/image.jsonrecords the image’s reference, digest and config.
Limits
linux/amd64images only.- An image you built locally must be pushed to a registry first (
docker push ghcr.io/you/img:tag). EXPOSEd ports are not published. Useinstabox port publishas for any machine. See Public and private ports.- Snapshot limits apply (the free plan keeps ).
Init, apt, and the C library
Init, apt, and the C library
A machine runs systemd as its init. The image’s own init (tini, s6) is present but not run, only its
ENTRYPOINT and CMD. apt manages the machine’s own system. The image’s packages are there as
files, but apt cannot see or remove them. Debian and Ubuntu images, old ones too (Debian 10 buster),
run on the machine’s newer C library. Alpine (musl) images work best-effort.