Skip to content

Commit b97c5f8

Browse files
authored
Revert "optimize memory usage in image load with Docker client integration (#…" (#21146)
This reverts commit 516e3ef.
1 parent 6a77942 commit b97c5f8

File tree

2 files changed

+5
-54
lines changed

2 files changed

+5
-54
lines changed

pkg/minikube/image/cache.go

Lines changed: 4 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ limitations under the License.
1717
package image
1818

1919
import (
20-
"context"
21-
"io"
2220
"os"
2321
"path/filepath"
2422
"time"
2523

26-
"github.com/docker/docker/client"
2724
"github.com/google/go-containerregistry/pkg/name"
2825
v1 "github.com/google/go-containerregistry/pkg/v1"
2926
"github.com/google/go-containerregistry/pkg/v1/tarball"
@@ -87,6 +84,7 @@ func SaveToDir(images []string, cacheDir string, overwrite bool) error {
8784
if err := g.Wait(); err != nil {
8885
return errors.Wrap(err, "caching images")
8986
}
87+
klog.Infoln("Successfully saved all images to host disk.")
9088
return nil
9189
}
9290

@@ -160,36 +158,6 @@ func saveToTarFile(iname, rawDest string, overwrite bool) error {
160158
return nil
161159
}
162160

163-
func saveImageWithDockerClient(f *os.File, ref name.Reference) error {
164-
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
165-
if err != nil {
166-
return errors.Wrap(err, "creating docker client")
167-
}
168-
defer cli.Close()
169-
170-
ctx := context.Background()
171-
172-
_, _, err = cli.ImageInspectWithRaw(ctx, ref.String())
173-
if err != nil {
174-
return errors.Wrapf(err, "inspect image %s via docker client", ref.String())
175-
}
176-
177-
imageResponse, err := cli.ImageSave(ctx, []string{ref.String()})
178-
if err != nil {
179-
return errors.Wrapf(err, "saving image %s via docker client", ref.String())
180-
}
181-
defer imageResponse.Close()
182-
183-
// Copy image data stream to file
184-
_, err = io.Copy(f, imageResponse)
185-
if err != nil {
186-
return errors.Wrapf(err, "copying image %s data to file", ref.String())
187-
}
188-
189-
klog.Infof("Successfully saved image %s using Docker client", ref.String())
190-
return nil
191-
}
192-
193161
func writeImage(img v1.Image, dst string, ref name.Reference) error {
194162
klog.Infoln("opening: ", dst)
195163
f, err := os.CreateTemp(filepath.Dir(dst), filepath.Base(dst)+".*.tmp")
@@ -207,27 +175,10 @@ func writeImage(img v1.Image, dst string, ref name.Reference) error {
207175
}
208176
}()
209177

210-
var imageSaved bool
211-
212-
// Using the Docker client to save the image for better performance
213-
if useDaemon {
214-
// Try to save the image using the Docker client
215-
if err := saveImageWithDockerClient(f, ref); err != nil {
216-
if !client.IsErrNotFound(err) {
217-
return errors.Wrap(err, "docker save")
218-
}
219-
klog.Warningf("Failed to save image with Docker client: %v, falling back to tarball.Write", err)
220-
} else {
221-
imageSaved = true
222-
}
223-
}
224-
// Fallback to saving the image using the tarball package
225-
if !imageSaved {
226-
if err := tarball.Write(ref, img, f); err != nil {
227-
return errors.Wrap(err, "write")
228-
}
178+
err = tarball.Write(ref, img, f)
179+
if err != nil {
180+
return errors.Wrap(err, "write")
229181
}
230-
231182
err = f.Close()
232183
if err != nil {
233184
return errors.Wrap(err, "close")

pkg/minikube/image/image.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func retrieveImage(ref name.Reference, imgName string) (v1.Image, string, error)
169169
}
170170

171171
func retrieveDaemon(ref name.Reference) (v1.Image, error) {
172-
img, err := daemon.Image(ref) // uses bufferedOpener, which may consume a significant amount of memory
172+
img, err := daemon.Image(ref)
173173
if err == nil {
174174
klog.Infof("found %s locally: %+v", ref.Name(), img)
175175
return img, nil

0 commit comments

Comments
 (0)