@@ -17,13 +17,10 @@ limitations under the License.
1717package image
1818
1919import (
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-
193161func 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" )
0 commit comments