WWCTL(1)

πŸ“¦ version 4.7.1, in opensuse-leap 16.0

πŸ’… wwctl-image-import β€” no wait, bestie, let's talk about wwctl (section 1, obviously)

Okay so picture this: you're deep in the wwctl man page (yes, the manual named wwctl, section 1, we stan) and you stumble into the image import corner of it. That's this page. Sit down, grab a snack πŸ“, and let me tell you everything.


✨ NAME ✨

wwctl-image-import β€” Import an image into Warewulf πŸŽ€

Like, that's the whole vibe. You have an image, Warewulf wants it, this command makes the introduction.


πŸ¦‹ SYNOPSIS πŸ¦‹

wwctl image import [OPTIONS] SOURCE [NAME]

That's it. That's the whole incantation. SOURCE is required, NAME is the optional glow-up πŸ’…, and [OPTIONS]... well, keep reading, there are so many.


🌸 DESCRIPTION 🌸

So this command literally pulls an image and imports it into Warewulf from SOURCE, and if you feel like it, optionally renames it to NAME. The SOURCE has got to be in a supported URI format, or it's not gonna slay. The formats are, and I'm quoting these exactly because they matter:

  • docker://registry.example.org/example:latest
  • docker-daemon://example:latest
  • file://path/to/archive/tar/ball
  • /path/to/archive/tar/ball
  • /path/to/chroot/

And here's the part that actually matters: the imported images are used to create bootable images. Bootable. Images. Main character energy fr fr πŸ”₯. So like, don't mess this up.


πŸ‘‘ OPTIONS πŸ‘‘

Okay, bestie, here's the full roster. No skips, no cuts, we're going through all of them 🫢

  • -b, --build[=false] β€” Build the image after pulling it. Yes, pull and build, multi-tasking icon behavior.
  • -f, --force[=false] β€” Removes the existing image and imports a new image with that name. Rude? Slightly. Effective? Absolutely πŸ’€
  • -h, --help[=false] β€” Help for import. The classic "wait what does this do again" button.
  • --nohttps[=false] β€” Ignores wrong TLS certificates. It supersedes the env WAREWULF_OCI_NOHTTPS. Like, it overrides it, periodt.
  • --password="" β€” Sets the password for access to the registry. It supersedes the env WAREWULF_OCI_PASSWORD.
  • --platform="" β€” Sets another hardware platform, e.g. amd64 or arm64. It supersedes the env WAREWULF_OCI_PLATFORM.
  • --syncuser[=false] β€” Synchronizes UIDs/GIDs from host to image. Keeping everyone's IDs matching, iconic.
  • -u, --update[=false] β€” Overwrites files in an existing image with the files of the remote image. Note the word overwrites β€” that's a real thing that happens πŸ™ˆ
  • --username="" β€” Sets the username for access to the registry. It supersedes the env WAREWULF_OCI_USERNAME.
Lowkey important: those [=false] defaults mean these bad boys are off unless you turn them on. And every one of those --nohttps, --password, --platform, --username flags supersedes its matching WAREWULF_OCI_* environment variable. The flag wins. Always. πŸ’…

🌈 OPTIONS INHERITED FROM PARENT COMMANDS 🌈

Not this command's own flags, but they come along for the ride from the parent. You get them anyway, because sharing is caring:

  • -d, --debug[=false] β€” Run with debugging messages enabled. For when you need to see everything.
  • -v, --verbose[=false] β€” Run with increased verbosity. Chatty. Love that for us.
  • --warewulfconf="" β€” Set the warewulf configuration file.

🧚 EXAMPLE 🧚

Real-world, copy-pasteable, chef's kiss:

wwctl image import docker://ghcr.io/warewulf/warewulf-rockylinux:8 rockylinux-8

Pull it from the registry, name it rockylinux-8. Boom. Done. Slay πŸ’œ


⭐ SEE ALSO ⭐

Go read that one too, iykyk πŸ¦‹


πŸ’€ HISTORY πŸ’€

16-Sep-2026 β€” Auto generated by spf13/cobra


Okay that's the whole page!! πŸ’– One last thing before you close the tab: this beauty was Auto generated by spf13/cobra (yes, that's the source, and the version is right there in it), and it's dated Sep 2026. That's the footer, bestie β€” you're all caught up. Now go import something iconic πŸ‘‘βœ¨πŸŽ€

πŸ“¦ where this page comes from