podman-import(1)

✨ podman-import(1) ✨

okay bestie, gather 'round, we're talking about podman-import from the General Commands Manual and honestly? it's giving "let me just yeet this tarball into an image" and i'm obsessed πŸ’…

🌸 NAME 🌸

podman-import β€” Import a tarball and save it as a filesystem image ✨

πŸ¦‹ SYNOPSIS πŸ¦‹

podman import [options] path [reference]

podman image import [options] path [reference]

πŸ’– DESCRIPTION πŸ’–

so podman import literally just imports a tarball β€” and yes, it can be compressed with Gzip, Bzip2, XZ or Zstd, no biggie β€” and saves it as a filesystem image. slay. you can even point it at remote tarballs using a URL, like the internet is your oyster πŸ¦‹

various image instructions can be configured with the --change flag, and a commit message can be set using the --message flag. reference, if present, is a tag to assign to the image, iykyk πŸŽ€

podman import is used for importing from the archive generated by podman export, which includes the container's filesystem. to import the archive of image layers created by podman save, use podman load. periodt, they're different things, don't mix them up bestie 😭

podman import builds a new image from a root-filesystem tarball (like the ones podman export makes), as a single layer with no prior image history. this is different from podman load, which restores an image archived by podman save, preserving its layers, history and tags. so like, if you want to load an image archive instead, see podman-load(1) 🫢

πŸ’€ note: : is a restricted character and cannot be part of the file name. don't even try it, bestie, it's not the vibe.

⭐ OPTIONS ⭐

  • --arch β€” Set architecture of the imported image. you know, for the culture 🧚
  • --change, -c=instruction β€” Apply the following possible instructions to the created image: CMD | ENTRYPOINT | ENV | EXPOSE | LABEL | STOPSIGNAL | USER | VOLUME | WORKDIR

Can be set multiple times πŸ”₯

  • --help, -h β€” Print usage statement. classic, iconic, we love a helpful king πŸ‘‘
  • --message, -m=message β€” Set commit message for imported image πŸ’Œ
  • --os β€” Set OS of the imported image. not me specifying the OS like a main character 🌈
  • --quiet, -q β€” Shows progress on the import πŸ‘€
  • --variant β€” Set variant of the imported image. fancy, i guess πŸ’…

πŸŽ€ EXAMPLES πŸŽ€

Import the selected tarball into new image, specifying the CMD, ENTRYPOINT and LABEL β€” look at her go:

$ podman import --change CMD=/bin/bash --change ENTRYPOINT=/bin/sh --change LABEL=blue=image ctr.tar image-imported
Getting image source signatures
Copying blob sha256:b41deda5a2feb1f03a5c1bb38c598cbc12c9ccd675f438edc6acd815f7585b86
 25.80 MB / 25.80 MB [======================================================] 0s
Copying config sha256:c16a6d30f3782288ec4e7521c754acc29d37155629cb39149756f486dae2d4cd
 448 B / 448 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
db65d991f3bbf7f31ed1064db9a6ced7652e3f8166c4736aa9133dadd3c7acb3

Import the selected tarball into new image, specifying the CMD, ENTRYPOINT and LABEL (again, but make it fashion):

$ podman import --change 'ENTRYPOINT ["/bin/sh","-c","test-image"]'  --change LABEL=blue=image test-image.tar image-imported
Getting image source signatures
Copying blob e3b0c44298fc skipped: already exists
Copying config 1105523502 done
Writing manifest to image destination
Storing signatures
110552350206337183ceadc0bdd646dc356e06514c548b69a8917b4182414b

Import new tagged image from stdin in quiet mode β€” stealthy but make it cute πŸ™ˆ:

$ cat ctr.tar | podman -q import --message "importing the ctr.tar file" - image-imported
db65d991f3bbf7f31ed1064db9a6ced7652e3f8166c4736aa9133dadd3c7acb3

Import an image from stdin, the way nature intended:

$ cat ctr.tar | podman import -
Getting image source signatures
Copying blob sha256:b41deda5a2feb1f03a5c1bb38c598cbc12c9ccd675f438edc6acd815f7585b86
 25.80 MB / 25.80 MB [======================================================] 0s
Copying config sha256:d61387b4d5edf65edee5353e2340783703074ffeaaac529cde97a8357eea7645
 378 B / 378 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
db65d991f3bbf7f31ed1064db9a6ced7652e3f8166c4736aa9133dadd3c7acb3

Import named image from tarball via a URL β€” yes, we're fetching from the internet, we're so brave 🌐✨:

$ podman import http://example.com/ctr.tar url-image
Downloading from "http://example.com/ctr.tar"
Getting image source signatures
Copying blob sha256:b41deda5a2feb1f03a5c1bb38c598cbc12c9ccd675f438edc6acd815f7585b86
 25.80 MB / 25.80 MB [======================================================] 0s
Copying config sha256:5813fe8a3b18696089fd09957a12e88bda43dc1745b5240879ffffe93240d29a
 419 B / 419 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
db65d991f3bbf7f31ed1064db9a6ced7652e3f8166c4736aa9133dadd3c7acb3

πŸ‘‘ SEE ALSO πŸ‘‘

podman(1), podman-export(1) β€” go read those too, bestie 🫢

🌈 HISTORY 🌈

November 2017 β€” Originally compiled by Urvashi Mohnani ✨

umohnani@redhat.com ⟨mailto:umohnani@redhat.com⟩


okay that's the whole page, you're now a podman-import expert, no cap πŸ’œ this iconic manual page is from the podman-import(1) manual (General Commands Manual), dated November 2017. now go import something and slay, bestie πŸ’…πŸŽ€πŸŒ·

πŸ“¦ where this page comes from