Giter Club home page Giter Club logo

docker-image-extract's Introduction

The docker-image-extract script pulls and extracts all files from an image in Docker Hub. For multi-platform images, you can choose the platform-specific image to pull.

docker-image-extract has minimal dependencies that should exist in pretty much any Linux environment, with the possible exception of curl/wget:

  • curl or wget
  • find
  • grep
  • gzip
  • mkdir
  • rm
  • sed
  • sh
  • tar

If you are using BusyBox, version 1.34.0 or later is required, as the wget implementation in earlier versions does not recognize the HTTP 307/308 redirects returned by Docker Hub.

Usage

./docker-image-extract [OPTIONS...] IMAGE[:REF]

IMAGE can be a community user image (like 'some-user/some-image') or a
Docker official image (like 'hello-world', which contains no '/').

REF is either a tag name or a full SHA-256 image digest (with a 'sha256:' prefix).
The default ref is the 'latest' tag.

Options:

  -p PLATFORM  Pull image for the specified platform (default: linux/amd64)
               For a given image on Docker Hub, the 'Tags' tab lists the
               platforms supported for that image.
  -o OUT_DIR   Extract image to the specified output dir (default: ./output)
  -h           Show help with usage examples

Examples:

# Pull and extract all files in the 'hello-world' image tagged 'latest'.
$ ./docker-image-extract hello-world:latest

# Same as above; ref defaults to the 'latest' tag.
$ ./docker-image-extract hello-world

# Pull the 'hello-world' image for the 'linux/arm64/v8' platform.
$ ./docker-image-extract -p linux/arm64/v8 hello-world

# Pull an image by digest.
$ ./docker-image-extract hello-world:sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042

Sample output

$ ./docker-image-extract busybox:musl
Getting API token...
Getting image manifest for library/busybox:musl...
Fetching and extracting layer e4df39e4f349fc83694349a5a94afc8d9857fa66f7421427f3d2463a58d876d3...
Image contents extracted into ./output.
$ ls output
bin  dev  etc  home  root  tmp  usr  var
$ ls -l output/bin/{busybox,ls}
-rwx------ 393 jjlin users 1148648 Apr  7 13:18 output/bin/busybox
-rwx------ 393 jjlin users 1148648 Apr  7 13:18 output/bin/ls

See also

docker-image-extract's People

Contributors

jjlin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.