podman-remote - A remote CLI for Podman: A Simple management tool for pods, containers and images.
podman-remote [options] command
Podman (Pod Manager) is a fully featured container engine that is a simple daemonless tool. Podman provides a Docker-CLI comparable command line that eases the transition from other container engines and allows the management of pods, containers and images. Simply put: alias docker=podman. Most Podman commands can be run as a regular user, without requiring additional privileges.
Podman uses Buildah(1) internally to create container images. Both tools share image (not container) storage, hence each can use or manipulate images (but not containers) created by the other.
Podman-remote provides a local client interacting with a Podman backend node through a RESTful API tunneled through a 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 should be placed under $HOME/.config/containers/containers.conf on Linux and Mac and %APPDATA%\containers\containers.conf on Windows.
podman [GLOBAL OPTIONS]
--connection=name,
-c
Remote connection name
Overrides environment variable CONTAINER_CONNECTION if set.
--help,
-h
Print usage statement
--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
--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>] |
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
* unix: a local unix(7) socket at the specified
path, or the default for the user
- user will default 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)
URL value
resolution precedence:
- command line value
- environment variable CONTAINER_HOST
- containers.conf service_destinations table
- 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://[email protected]:22/run/user/$UID/podman/podman.sock
- ssh://[email protected]:22/run/podman/podman.sock
- tcp://localhost:34451
- tcp://127.0.0.1:34451
--version
Print the version
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.
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
containers.conf ($HOME/.config/containers/containers.conf)
Podman has builtin defaults for command line options. These defaults can be overridden using the containers.conf configuration files.
Users can modify defaults by creating the $HOME/.config/containers/containers.conf file. Podman merges its builtin defaults with the specified fields from this file, if it exists. Fields specified in the users file override the built-in defaults.
Podman uses builtin defaults if no containers.conf file is found.
podman(1), podman-system-service(1), containers.conf(5)