nydus icon indicating copy to clipboard operation
nydus copied to clipboard

Full docker support

Open liubogithub opened this issue 2 years ago • 5 comments

Docker is still used by lots of users and the amount of such use cases is not negligible, so it's important for nydus to have a decent support for docker use cases.

The key is to provide two images but one data at the same time,

  • one has only a targz layer of the metadata file " bootstrap", lets call it "foobar.slim",
  • the other is a standard nydus image, which has both the metadata file "bootstrap" and the data files "blobs", lets call it "foobar.standard".

1671699478770-38a6507b-d22b-4b74-8321-2d777a2c491b

Docker should use "foobar.slim" and nydus docker graphdriver will then do the lazy loading stuff.

1671700030684-9a34cd70-c35e-4b4f-ae9d-12ba8dd614a0

We are able to get it easily by either the multiple manifest/platform solution and or two images straightforward.

Possible changes include:

  • nydusify/buildkit should support generating multiple manifest/platform or two images at a time.
  • nydus-docker-graphdriver should be updated to use the latest nydus (at least master branch)

liubogithub avatar Jan 10 '23 19:01 liubogithub

@changweige Hi, Changwei, could you take a look at this issues when you have time?

adamqqqplay avatar Feb 15 '23 08:02 adamqqqplay

@changweige Hi, Changwei, could you take a look at this issues when you have time?

The design looks good to me. My only concern is that Docker is adopting Containerd snapshotter mechanism. Is it a strong need for users to use the docker graph driver?

changweige avatar Feb 15 '23 08:02 changweige

We can track the progress of docker and snapshotter integration, however there are still many users deploying the earlier docker engine.

imeoer avatar Feb 15 '23 08:02 imeoer

@changweige Hi, Changwei, could you take a look at this issues when you have time?

The design looks good to me. My only concern is that Docker is adopting Containerd snapshotter mechanism. Is it a strong need for users to use the docker graph driver?

Yes, many users report that they are still using dockerd to start containers. For them, the concepts related to containerd are still relatively vague, and the migration cost will be relatively high.

In addition, after the Moby(Dockerd) community integrates containerd, the release of the docker version is still relatively far away, and users are unlikely to migrate to the latest version immediately.

adamqqqplay avatar Feb 15 '23 09:02 adamqqqplay

Tao Hong is working on this issue. @taoohong

adamqqqplay avatar Mar 23 '23 03:03 adamqqqplay

Let's try use containerd snapshotter in latest docker release.

imeoer avatar Jun 18 '24 07:06 imeoer