stargz-snapshotter
stargz-snapshotter copied to clipboard
have plan to support docker image pull?
docker are still widely used nowadays, but it still use graphdriver instead of snapshotter to prepare image, do you have plan to support docker?
@xujihui1985 Yes, I really would love to integrate to Docker.
I've worked on moby/moby#41002 but it does not reach to the agreement. There are also on-going issue moby/moby#38043 and moby/moby#38738 for using containerd as the Docker's image backend but it not completed as well.
@ktock Can we revisit the initial "bootfs" approach
Interesting. Mounting stargz as "bootfs"? I'll take a look.
@ktock we have a similar approach as bootfs https://github.com/dragonflyoss/image-service which convert image with meta and blob, and we also have large scale deployment inside, would you like to have look at that :)
stargz is the first choice when we evaluate the image lazyloading, and it is amazing, we need
- file content aware approach instead of block level as we can analyze file access pattern
- extreme fast image pulling speed
but we found something that not meet our requirement
- flatten fuse mountpoint instead of multilayer with overlay
- low memory footprint (the stargzindex file is quite large as the image we dealing is really large maybe 20GB)
- daemon live upgade
- separate snapshotter with control plane and data plane, (remote snapshotter as control plane, nydusd as data plane)
Thanks for the suggestion!
We agree with all of the following requirements. Just needs more time & help for implementing them.
- flatten fuse mountpoint instead of multilayer with overlay
- low memory footprint (the stargzindex file is quite large as the image we dealing is really large maybe 20GB)
- daemon live upgade
Could you elaborate the following?
- separate snapshotter with control plane and data plane, (remote snapshotter as control plane, nydusd as data plane)
@ktock remote snapshotter will die for whatever reason, we can't afford the consequence that if snapshotter die, all the container that running on that just die, we hope snapshotter to become a control plane that just manage the fuse daemon, and when it die, it can restart and restore back to its state and container running on that will not affect by its crash
nerdctl supports lazy-pulling with Docker-compatible CLI: https://github.com/AkihiroSuda/nerdctl
nerdctl --snapshotter=stargz run -it --rm ghcr.io/stargz-containers/fedora:30-esgz
@AkihiroSuda thanks Akihiro, this looks promising