podman-remote(1)

πŸ“¦
version 6.1.4 Β· 4 versions
, in arch rolling, centos-stream 10, centos-stream 9, fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– podman-remote(1) β€” General Commands Manual πŸ’–

okay bestie, welcome to the remote CLI for Podman: the simple management tool for pods, containers and images. this is the glow-up version of the manpage, same facts, immaculate vibes ✨


🌸 NAME 🌸

podman-remote β€” a remote CLI for Podman: a simple management tool for pods, containers and images. 🫢


✨ SYNOPSIS ✨

podman-remote [options] command

πŸ¦‹ DESCRIPTION πŸ¦‹

so like. Podman (short for Pod Manager, obsessed with the name) is a fully featured container engine that's a simple, daemonless tool. no daemon drama, no cap. πŸ’…

Podman gives you a Docker-CLI comparable command line that makes the transition from other container engines genuinely effortless, and lets you manage pods, containers and images. simply put:

alias docker=podman

periodt. and the best part? most Podman commands can be run as a regular user, no extra privileges required. main character energy, lowkey.

Podman uses Buildah(1) internally to create container images. both tools share image (not container) storage, which means each one can use or manipulate images (but not containers) created by the other. sharing is caring πŸŽ€

Now for the remote part, which is literally the whole point of this page: podman-remote provides a local client interacting with a Podman backend node through a RESTful API tunneled through an ssh connection. in this context, a Podman node is a Linux system with Podman installed on it and the API service activated. credentials for this session can be passed in using flags, environment variables, or in containers.conf. ✨

the containers.conf file lives under:

  • $HOME/.config/containers/containers.conf on Linux and Mac
  • %APPDATA%\containers\containers.conf on Windows

and also, just so you have it:

podman [GLOBAL OPTIONS]

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

πŸ’« --connection=name, -c πŸ’«

Remote connection name. 🌈

Overrides environment variable CONTAINER_CONNECTION if set.

πŸ’« --help, -h πŸ’«

Print usage statement. iconic, honestly.

πŸ’« --identity=path πŸ’«

Path to ssh identity file. if the identity file has been encrypted, Podman prompts the user for the passphrase. if no identity file is provided and no user is given, Podman defaults to the user running the podman command. Podman prompts for the login password on the remote server. πŸ”

Identity value resolution precedence:

  • command line value
  • environment variable CONTAINER_SSHKEY, if CONTAINER_HOST is found
  • containers.conf

πŸ’« --log-level=level πŸ’«

Log messages above specified level: debug, info, warn, error (default), fatal or panic. error is the default btw, so if you want the tea you gotta ask for it πŸ“

πŸ’« --url=value πŸ’«

URL to access Podman service (default from containers.conf, rootless unix:///run/user/$UID/podman/podman.sock or as root unix:///run/podman/podman.sock).

  • CONTAINER_HOST is of the format <schema>://[<user[:<password>]@]<host>[:<port>][<path>]
  • CONTAINER_PROXY is of the format <socks5|socks5h>://[<user[:<password>]@]<host>[:<port>]

Details:

  • schema is one of:
    • ssh (default): a local unix(7) socket on the named host and port, reachable via SSH
    • tcp: an unencrypted, unauthenticated TCP connection to the named host and port, can work with proxy if CONTAINER_PROXY is set
    • unix: a local unix(7) socket at the specified path, or the default for the user
  • user defaults to either root or the current running user (ssh only)
  • password has no default (ssh only)
  • host must be provided and is either the IP or name of the machine hosting the Podman service (ssh and tcp)
  • port defaults to 22 (ssh and tcp)
  • path defaults to either /run/podman/podman.sock, or /run/user/$UID/podman/podman.sock if running rootless (unix), or must be explicitly specified (ssh)
  • CONTAINER_PROXY: use proxy (socks5 or socks5h) to access Podman service (tcp only)

URL value resolution precedence:

  • command line value
  • environment variable CONTAINER_HOST
  • engine.service_destinations table in containers.conf, excluding the /usr/share/containers directory
  • unix:///run/podman/podman.sock

Remote connections use local containers.conf for default.

Some example URL values in valid formats:

  • unix:///run/podman/podman.sock
  • unix:///run/user/$UID/podman/podman.sock
  • ssh://notroot@localhost:22/run/user/$UID/podman/podman.sock
  • ssh://root@localhost:22/run/podman/podman.sock
  • tcp://localhost:34451
  • tcp://127.0.0.1:34451

πŸ’« --version πŸ’«

Print the version. slay. 🌟


🌈 Environment Variables 🌈

Podman can set up environment variables from env of [engine] table in containers.conf. these variables can be overridden by passing environment variables before the podman commands. πŸ’œ

CONTAINERS_CONF

Set default locations of containers.conf file.

CONTAINER_CONNECTION

Set default --connection value to access Podman service.

CONTAINER_HOST

Set default --url value to access Podman service.

CONTAINER_SSHKEY

Set default --identity path to ssh key file value used to access Podman service.


πŸ’€ Exit Status πŸ’€

the exit code from podman gives information about why the container failed to run or why it exited. when podman commands exit with a non-zero code, the exit codes follow the chroot standard, see below πŸ‘‡

125 β€” The error is with podman itself

$ podman run --foo busybox; echo $?
Error: unknown flag: --foo
125

126 β€” Executing a contained command and the command cannot be invoked

$ podman run busybox /etc; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126

127 β€” Executing a contained command and the command cannot be found

$ podman run busybox foo; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
127

Exit code contained command exit code

$ podman run busybox /bin/sh -c 'exit 3'; echo $?
3

bestie this is only part 1, there's more coming so don't go anywhere πŸ’…

✨ COMMANDS ✨

okay bestie, here's the whole squad πŸ’… every single one of these is its own manpage, and honestly? they're all icons. go read them when you need the deets, but here's the vibe check first:

  • podman-attach(1) β€” attach to a running container. like, you just wanna be in there with it 🫢
  • podman-build(1) β€” build a container image using a Dockerfile. the classic glow-up pipeline ✨
  • podman-commit(1) β€” create a new image based on the changed container. lock in those edits, periodt.
  • podman-container(1) β€” manage containers. the whole container management moment πŸ‘‘
  • podman-cp(1) β€” copy files/folders between a container and the local filesystem. lil file teleportation πŸ¦‹
  • podman-create(1) β€” create a new container. no running yet, just vibes 🌸
  • podman-diff(1) β€” inspect changes on a container or image's filesystem. see what got messy πŸ’€
  • podman-events(1) β€” monitor Podman events. the group chat feed fr fr πŸ‘€
  • podman-export(1) β€” export a container's filesystem contents as a tar archive. yeet it into a .tar πŸ“¦
  • podman-generate(1) β€” generate structured data based on containers and pods. it's giving structured data πŸ’œ
  • podman-healthcheck(1) β€” manage healthchecks for containers. keeping your babies thriving πŸ’–
  • podman-history(1) β€” show the history of an image. the image's whole lore 🌈
  • podman-image(1) β€” manage images. image management central, iykyk
  • podman-images(1) β€” list images in local storage. see what's sitting in your local storage πŸ’…
  • podman-import(1) β€” import a tarball and save it as a filesystem image. reverse of the yeet ⭐
  • podman-info(1) β€” display Podman related system information. the system's whole biography 😭
  • podman-init(1) β€” initialize a container. wake it up gently 🧚
  • podman-inspect(1) β€” display a container or image's configuration. full tea, no filter πŸ”
  • podman-kill(1) β€” kill the main process in one or more containers. dramatic but necessary πŸ’€
  • podman-load(1) β€” load an image from a container image archive into container storage. bring it back into container storage πŸŽ€
  • podman-logs(1) β€” display the logs of a container. read the receipts πŸ“œ
  • podman-pause(1) β€” pause one or more containers. freeze frame, main character pause βœ‹
  • podman-pod(1) β€” management tool for groups of containers, called pods. pods are just friend groups fr πŸ«‚
  • podman-port(1) β€” list port mappings for a container. where the ports at πŸ”₯
  • podman-ps(1) β€” print out information about containers. the "who's here rn" check πŸ‘‘
  • podman-pull(1) β€” pull an image from a registry. come thruuu ⬇️
  • podman-push(1) β€” push an image from local storage to elsewhere. send it, bestie ⬆️
  • podman-restart(1) β€” restart one or more containers. the lil reset button πŸ¦‹
  • podman-rm(1) β€” remove one or more containers. bye boo πŸ‘‹
  • podman-rmi(1) β€” remove one or more locally stored images. also bye, but for images stored locally πŸ“
  • podman-run(1) β€” run a command in a new container. the big one. the moment. ✨
  • podman-save(1) β€” save an image to a container archive. archive that fit πŸ’Ύ
  • podman-start(1) β€” start one or more containers. go go go πŸš€
  • podman-stop(1) β€” stop one or more running containers. okay that's enough, bestie πŸ›‘
  • podman-system(1) β€” manage podman. yes, podman manages itself. iconic. πŸ’œ
  • podman-tag(1) β€” add an additional name to a local image. more names = more to love 🏷️
  • podman-top(1) β€” display the running processes of a container. who's doing what in there πŸ‘€
  • podman-unpause(1) β€” unpause one or more containers. unfreeze, you're back ✨

  • podman-version(1) β€” shows you all the Podman version info, like, everything. version check era ✨
  • podman-volume(1) β€” manages your Volumes. storage bestie πŸ’Ύ

πŸ“ FILES πŸ“

containers.conf ($HOME/.config/containers/containers.conf)

okay so real talk β€” Podman comes with builtin defaults for all its command line options, right? and those defaults can get overridden by the containers.conf config files. the more you know 🌈

If you wanna change those defaults, you just make a file at $HOME/.config/containers/containers.conf. If it exists, Podman takes its builtin defaults and merges them together with whatever fields you put in that file. Anything you specified in your file? yeah, that overrides the built-in defaults. you win, periodt. πŸ‘‘

And if there's no containers.conf file anywhere? Podman just uses the builtin defaults. no drama, no file, no problem. 🫢


πŸ‘€ SEE ALSO πŸ‘€

podman(1), podman-system-service(1), containers.conf(5)

πŸ› οΈ Troubleshooting πŸ› οΈ

Stuck? confused? something acting up and you're like "why is this happening to me specifically"? 😭 go read podman-troubleshooting(7) β€” it's got solutions to common issues, iykyk. your little helper 🧚


and that's the whole page bestie!! πŸ’– the footer down there says it's podman-remote(1), with its date chillin' right next to it β€” that's the source/version stamp, the lil' signature at the bottom. iconic. you made it to the end πŸŽ€βœ¨

πŸ“¦ where this page comes from