Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

have plan to support docker image pull? #182

Open
xujihui1985 opened this issue Nov 30, 2020 · 9 comments
Open

have plan to support docker image pull? #182

xujihui1985 opened this issue Nov 30, 2020 · 9 comments
Labels
enhancement New feature or request

Comments

@xujihui1985
Copy link

docker are still widely used nowadays, but it still use graphdriver instead of snapshotter to prepare image, do you have plan to support docker?

@ktock
Copy link
Member

ktock commented Nov 30, 2020

@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 ktock added the enhancement New feature or request label Nov 30, 2020
@AkihiroSuda
Copy link
Member

@ktock Can we revisit the initial "bootfs" approach

@ktock
Copy link
Member

ktock commented Dec 1, 2020

Interesting. Mounting stargz as "bootfs"? I'll take a look.

@xujihui1985
Copy link
Author

@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 :)

@xujihui1985
Copy link
Author

xujihui1985 commented Dec 9, 2020

stargz is the first choice when we evaluate the image lazyloading, and it is amazing, we need

  1. file content aware approach instead of block level as we can analyze file access pattern
  2. extreme fast image pulling speed

but we found something that not meet our requirement

  1. flatten fuse mountpoint instead of multilayer with overlay
  2. low memory footprint (the stargzindex file is quite large as the image we dealing is really large maybe 20GB)
  3. daemon live upgade
  4. separate snapshotter with control plane and data plane, (remote snapshotter as control plane, nydusd as data plane)

@ktock
Copy link
Member

ktock commented Dec 9, 2020

Thanks for the suggestion!

We agree with all of the following requirements. Just needs more time & help for implementing them.

  1. flatten fuse mountpoint instead of multilayer with overlay
  2. low memory footprint (the stargzindex file is quite large as the image we dealing is really large maybe 20GB)
  3. daemon live upgade

Could you elaborate the following?

  1. separate snapshotter with control plane and data plane, (remote snapshotter as control plane, nydusd as data plane)

@xujihui1985
Copy link
Author

@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

@AkihiroSuda
Copy link
Member

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

@xujihui1985
Copy link
Author

@AkihiroSuda thanks Akihiro, this looks promising

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants