github.com/containers/podman/v5@v5.1.0-rc1/docs/source/markdown/podman.1.md (about)

     1  % podman 1
     2  
     3  ## NAME
     4  podman - Simple management tool for pods, containers and images
     5  
     6  ## SYNOPSIS
     7  **podman** [*options*] *command*
     8  
     9  ## DESCRIPTION
    10  Podman (Pod Manager) is a fully featured container engine that is a simple daemonless tool.
    11  Podman provides a Docker-CLI comparable command line that eases the transition from other
    12  container engines and allows the management of pods, containers and images.  Simply put: `alias docker=podman`.
    13  Most Podman commands can be run as a regular user, without requiring additional
    14  privileges.
    15  
    16  Podman uses Buildah(1) internally to create container images. Both tools share image
    17  (not container) storage, hence each can use or manipulate images (but not containers)
    18  created by the other.
    19  
    20  Default settings for flags are defined in `containers.conf`. Most settings for
    21  Remote connections use the server's containers.conf, except when documented in
    22  man pages.
    23  
    24  **podman [GLOBAL OPTIONS]**
    25  
    26  ## GLOBAL OPTIONS
    27  
    28  #### **--cgroup-manager**=*manager*
    29  
    30  The CGroup manager to use for container cgroups. Supported values are __cgroupfs__ or __systemd__. Default is _systemd_ unless overridden in the containers.conf file.
    31  
    32  Note: Setting this flag can cause certain commands to break when called on containers previously created by the other CGroup manager type.
    33  Note: CGroup manager is not supported in rootless mode when using CGroups Version V1.
    34  
    35  #### **--config**
    36  Location of config file. Mainly for docker compatibility, only the authentication parts of the config are supported.
    37  
    38  #### **--conmon**
    39  Path of the conmon binary (Default path is configured in `containers.conf`)
    40  
    41  #### **--connection**, **-c**
    42  Connection to use for remote podman, including Mac and Windows (excluding WSL2) machines, (Default connection is configured in `containers.conf`)
    43  Setting this option switches the **--remote** option to true.
    44  Remote connections use local containers.conf for default.
    45  
    46  #### **--events-backend**=*type*
    47  
    48  Backend to use for storing events. Allowed values are **file**, **journald**, and
    49  **none**. When *file* is specified, the events are stored under
    50  `<tmpdir>/events/events.log` (see **--tmpdir** below).
    51  
    52  #### **--help**, **-h**
    53  
    54  Print usage statement
    55  
    56  #### **--hooks-dir**=*path*
    57  
    58  Each `*.json` file in the path configures a hook for Podman containers.  For more details on the syntax of the JSON files and the semantics of hook injection, see `oci-hooks(5)`.  Podman and libpod currently support both the 1.0.0 and 0.1.0 hook schemas, although the 0.1.0 schema is deprecated.
    59  
    60  This option may be set multiple times; paths from later options have higher precedence (`oci-hooks(5)` discusses directory precedence).
    61  
    62  For the annotation conditions, libpod uses any annotations set in the generated OCI configuration.
    63  
    64  For the bind-mount conditions, only mounts explicitly requested by the caller via `--volume` are considered.  Bind mounts that libpod inserts by default (e.g. `/dev/shm`) are not considered.
    65  
    66  If `--hooks-dir` is unset for root callers, Podman and libpod currently default to `/usr/share/containers/oci/hooks.d` and `/etc/containers/oci/hooks.d` in order of increasing precedence.  Using these defaults is deprecated. Migrate to explicitly setting `--hooks-dir`.
    67  
    68  Podman and libpod currently support an additional `precreate` state which is called before the runtime's `create` operation.  Unlike the other stages, which receive the container state on their standard input, `precreate` hooks receive the proposed runtime configuration on their standard input.  They may alter that configuration as they see fit, and write the altered form to their standard output.
    69  
    70  **WARNING**: the `precreate` hook allows powerful changes to occur, such as adding additional mounts to the runtime configuration.  That power also makes it easy to break things.  Before reporting libpod errors, try running a container with `precreate` hooks disabled to see if the problem is due to one of the hooks.
    71  
    72  #### **--identity**=*path*
    73  
    74  Path to ssh identity file. If the identity file has been encrypted, podman prompts the user for the passphrase.
    75  If no identity file is provided and no user is given, podman defaults to the user running the podman command.
    76  Podman prompts for the login password on the remote server.
    77  
    78  Identity value resolution precedence:
    79   - command line value
    80   - environment variable `CONTAINER_SSHKEY`, if `CONTAINER_HOST` is found
    81   - `containers.conf`
    82  Remote connections use local containers.conf for default.
    83  
    84  #### **--imagestore**=*path*
    85  
    86  Path of the imagestore where images are stored.  By default, the storage library stores all the images in the graphroot but if an imagestore is provided, then the storage library will store newly pulled images in the provided imagestore and keep using the graphroot for everything else. If the user is using the overlay driver, then the images which were already part of the graphroot will still be accessible.
    87  
    88  This will override *imagestore* option in `containers-storage.conf(5)`, refer to `containers-storage.conf(5)` for more details.
    89  
    90  #### **--log-level**=*level*
    91  
    92  Log messages at and above specified level: __debug__, __info__, __warn__, __error__, __fatal__ or __panic__ (default: _warn_)
    93  
    94  #### **--module**=*path*
    95  
    96  Load the specified `containers.conf(5)` module.  Can be an absolute or relative path.  Please refer to `containers.conf(5)` for details.
    97  
    98  This flag is not supported on the remote client, including Mac and Windows (excluding WSL2) machines.
    99  Further note that the flag is a root-level flag and must be specified before any Podman sub-command.
   100  
   101  #### **--network-cmd-path**=*path*
   102  Path to the `slirp4netns(1)` command binary to use for setting up a slirp4netns network.
   103  If "" is used, then the binary will first be searched using the `helper_binaries_dir` option in `containers.conf`, and second using the `$PATH` environment variable.
   104  **Note:** This option is deprecated and will be removed with Podman 5.0. Use the `helper_binaries_dir` option in `containers.conf` instead.
   105  
   106  #### **--network-config-dir**=*directory*
   107  
   108  Path to the directory where network configuration files are located.
   109  For the netavark backend "/etc/containers/networks" is used as root
   110  and "$graphroot/networks" as rootless.
   111  For the CNI backend the default is "/etc/cni/net.d" as root
   112  and "$HOME/.config/cni/net.d" as rootless.
   113  CNI is deprecated and will be removed in the next major Podman version 5.0 in preference of Netavark.
   114  
   115  #### **--out**=*path*
   116  Redirect the output of podman to the specified path without affecting the container output or its logs. This parameter can be used to capture the output from any of podman's commands directly into a file and enable suppression of podman's output by specifying /dev/null as the path. To explicitly disable the container logging, the **--log-driver** option should be used.
   117  
   118  #### **--remote**, **-r**
   119  When true, access to the Podman service is remote. Defaults to false.
   120  Settings can be modified in the containers.conf file. If the CONTAINER_HOST
   121  environment variable is set, the **--remote** option defaults to true.
   122  
   123  #### **--root**=*value*
   124  
   125  Storage root dir in which data, including images, is stored (default: "/var/lib/containers/storage" for UID 0, "$HOME/.local/share/containers/storage" for other users).
   126  Default root dir configured in `containers-storage.conf(5)`.
   127  
   128  Overriding this option causes the *storage-opt* settings in `containers-storage.conf(5)` to be ignored.  The user must specify additional options via the `--storage-opt` flag.
   129  
   130  #### **--runroot**=*value*
   131  
   132  Storage state directory where all state information is stored (default: "/run/containers/storage" for UID 0, "/run/user/$UID/run" for other users).
   133  Default state dir configured in `containers-storage.conf(5)`.
   134  
   135  #### **--runtime**=*value*
   136  
   137  Name of the OCI runtime as specified in containers.conf or absolute path to the OCI compatible binary used to run containers.
   138  
   139  #### **--runtime-flag**=*flag*
   140  
   141  Adds global flags for the container runtime. To list the supported flags, please
   142  consult the manpages of the selected container runtime (`runc` is the default
   143  runtime, the manpage to consult is `runc(8)`.  When the machine is configured
   144  for cgroup V2, the default runtime is `crun`, the manpage to consult is `crun(8)`.).
   145  
   146  Note: Do not pass the leading `--` to the flag. To pass the runc flag `--log-format json`
   147  to podman build, the option given can be `--runtime-flag log-format=json`.
   148  
   149  
   150  #### **--ssh**=*value*
   151  
   152  This option allows the user to change the ssh mode, meaning that rather than using the default **golang** mode, one can instead use **--ssh=native**
   153  to use the installed ssh binary and config file declared in containers.conf.
   154  
   155  #### **--storage-driver**=*value*
   156  
   157  Storage driver.  The default storage driver for UID 0 is configured in `containers-storage.conf(5)` in rootless mode), and is *vfs* for non-root users when *fuse-overlayfs* is not available.  The `STORAGE_DRIVER` environment variable overrides the default.  The --storage-driver specified driver overrides all.
   158  
   159  Overriding this option causes the *storage-opt* settings in `containers-storage.conf(5)` to be ignored.  The user must
   160  specify additional options via the `--storage-opt` flag.
   161  
   162  #### **--storage-opt**=*value*
   163  
   164  Specify a storage driver option. Default storage driver options are configured in `containers-storage.conf(5)`. The `STORAGE_OPTS` environment variable overrides the default. The --storage-opt specified options override all. Specify --storage-opt="" so no storage options is used.
   165  
   166  #### **--syslog**
   167  
   168  Output logging information to syslog as well as the console (default *false*).
   169  
   170  On remote clients, including Mac and Windows (excluding WSL2) machines, logging is directed to the file $HOME/.config/containers/podman.log.
   171  
   172  #### **--tmpdir**=*path*
   173  
   174  Path to the tmp directory, for libpod runtime content. Defaults to `$XDG_RUNTIME_DIR/libpod/tmp` as rootless and `/run/libpod/tmp` as rootful.
   175  
   176  NOTE --tmpdir is not used for the temporary storage of downloaded images.  Use the environment variable `TMPDIR` to change the temporary storage location of downloaded container images. Podman defaults to use `/var/tmp`.
   177  
   178  #### **--transient-store**
   179  
   180  Enables a global transient storage mode where all container metadata is stored on non-persistent media (i.e. in the location specified by `--runroot`).
   181  This mode allows starting containers faster, as well as guaranteeing a fresh state on boot in case of unclean shutdowns or other problems. However
   182  it is not compatible with a traditional model where containers persist across reboots.
   183  
   184  Default value for this is configured in `containers-storage.conf(5)`.
   185  
   186  #### **--url**=*value*
   187  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`).
   188  Setting this option switches the **--remote** option to true.
   189  
   190   - `CONTAINER_HOST` is of the format `<schema>://[<user[:<password>]@]<host>[:<port>][<path>]`
   191  
   192  Details:
   193   - `schema` is one of:
   194     * `ssh` (default): a local unix(7) socket on the named `host` and `port`, reachable via SSH
   195     * `tcp`: an unencrypted, unauthenticated TCP connection to the named `host` and `port`
   196     * `unix`: a local unix(7) socket at the specified `path`, or the default for the user
   197   - `user` defaults to either `root` or the current running user (`ssh` only)
   198   - `password` has no default (`ssh` only)
   199   - `host` must be provided and is either the IP or name of the machine hosting the Podman service (`ssh` and `tcp`)
   200   - `port` defaults to 22 (`ssh` and `tcp`)
   201   - `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`)
   202  
   203  URL value resolution precedence:
   204   - command line value
   205   - environment variable `CONTAINER_HOST`
   206   - `engine.service_destinations` table in containers.conf, excluding the /usr/share/containers directory
   207   - `unix:///run/podman/podman.sock`
   208  
   209  Remote connections use local containers.conf for default.
   210  
   211  Some example URL values in valid formats:
   212   - unix:///run/podman/podman.sock
   213   - unix:///run/user/$UID/podman/podman.sock
   214   - ssh://notroot@localhost:22/run/user/$UID/podman/podman.sock
   215   - ssh://root@localhost:22/run/podman/podman.sock
   216   - tcp://localhost:34451
   217   - tcp://127.0.0.1:34451
   218  
   219  #### **--version**, **-v**
   220  
   221  Print the version
   222  
   223  #### **--volumepath**=*value*
   224  
   225  Volume directory where builtin volume information is stored (default: "/var/lib/containers/storage/volumes" for UID 0, "$HOME/.local/share/containers/storage/volumes" for other users). Default volume path can be overridden in `containers.conf`.
   226  
   227  ## Environment Variables
   228  
   229  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.
   230  
   231  #### **CONTAINERS_CONF**
   232  
   233  Set default locations of containers.conf file
   234  
   235  #### **CONTAINERS_REGISTRIES_CONF**
   236  
   237  Set default location of the registries.conf file.
   238  
   239  #### **CONTAINERS_STORAGE_CONF**
   240  
   241  Set default location of the storage.conf file.
   242  
   243  #### **CONTAINER_CONNECTION**
   244  
   245  Override default `--connection` value to access Podman service. Automatically enables the --remote option.
   246  
   247  #### **CONTAINER_HOST**
   248  
   249  Set default `--url` value to access Podman service. Automatically enables --remote option.
   250  
   251  #### **CONTAINER_SSHKEY**
   252  
   253  Set default `--identity` path to ssh key file value used to access Podman service.
   254  
   255  #### **PODMAN_CONNECTIONS_CONF**
   256  
   257  The path to the file where the system connections and farms created with `podman system connection add`
   258  and `podman farm add` are stored, by default it uses `~/.config/containers/podman-connections.json`.
   259  
   260  #### **STORAGE_DRIVER**
   261  
   262  Set default `--storage-driver` value.
   263  
   264  #### **STORAGE_OPTS**
   265  
   266  Set default `--storage-opts` value.
   267  
   268  #### **TMPDIR**
   269  
   270  Set the temporary storage location of downloaded container images. Podman defaults to use `/var/tmp`.
   271  
   272  #### **XDG_CONFIG_HOME**
   273  
   274  In Rootless mode configuration files are read from `XDG_CONFIG_HOME` when
   275  specified, otherwise in the home directory of the user under
   276  `$HOME/.config/containers`.
   277  
   278  #### **XDG_DATA_HOME**
   279  
   280  In Rootless mode images are pulled under `XDG_DATA_HOME` when specified,
   281  otherwise in the home directory of the user under
   282  `$HOME/.local/share/containers/storage`.
   283  
   284  #### **XDG_RUNTIME_DIR**
   285  
   286  In Rootless mode temporary configuration data is stored in `${XDG_RUNTIME_DIR}/containers`.
   287  
   288  ## Remote Access
   289  
   290  The Podman command can be used with remote services using the `--remote` flag. Connections can
   291  be made using local unix domain sockets, ssh or directly to tcp sockets. When specifying the
   292  podman --remote flag, only the global options `--url`, `--identity`, `--log-level`, `--connection` are used.
   293  
   294  Connection information can also be managed using the containers.conf file.
   295  
   296  ## Exit Codes
   297  
   298  The exit code from `podman` gives information about why the container
   299  failed to run or why it exited.  When `podman` commands exit with a non-zero code,
   300  the exit codes follow the `chroot` standard, see below:
   301  
   302    **125** The error is with podman **_itself_**
   303  
   304      $ podman run --foo busybox; echo $?
   305      Error: unknown flag: --foo
   306      125
   307  
   308    **126** Executing a _container command_ and the _command_ cannot be invoked
   309  
   310      $ podman run busybox /etc; echo $?
   311      Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
   312      126
   313  
   314    **127** Executing a _container command_ and the _command_ cannot be found
   315  
   316      $ podman run busybox foo; echo $?
   317      Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
   318      127
   319  
   320    **Exit code** otherwise, `podman` returns the exit code of the _container command_
   321  
   322      $ podman run busybox /bin/sh -c 'exit 3'; echo $?
   323      3
   324  
   325  
   326  ## COMMANDS
   327  
   328  | Command                                          | Description                                                                 |
   329  | ------------------------------------------------ | --------------------------------------------------------------------------- |
   330  | [podman-attach(1)](podman-attach.1.md)           | Attach to a running container.                                              |
   331  | [podman-auto-update(1)](podman-auto-update.1.md) | Auto update containers according to their auto-update policy                |
   332  | [podman-build(1)](podman-build.1.md)             | Build a container image using a Containerfile.                              |
   333  | [podman-farm(1)](podman-farm.1.md)     | Farm out builds to machines running podman for different architectures        |
   334  | [podman-commit(1)](podman-commit.1.md)           | Create new image based on the changed container.                            |
   335  | [podman-completion(1)](podman-completion.1.md)   | Generate shell completion scripts                                           |
   336  | [podman-compose(1)](podman-compose.1.md)         | Run Compose workloads via an external compose provider.                     |
   337  | [podman-container(1)](podman-container.1.md)     | Manage containers.                                                          |
   338  | [podman-cp(1)](podman-cp.1.md)                   | Copy files/folders between a container and the local filesystem.            |
   339  | [podman-create(1)](podman-create.1.md)           | Create a new container.                                                     |
   340  | [podman-diff(1)](podman-diff.1.md)               | Inspect changes on a container or image's filesystem.                       |
   341  | [podman-events(1)](podman-events.1.md)           | Monitor Podman events                                                       |
   342  | [podman-exec(1)](podman-exec.1.md)               | Execute a command in a running container.                                   |
   343  | [podman-export(1)](podman-export.1.md)           | Export a container's filesystem contents as a tar archive.                  |
   344  | [podman-generate(1)](podman-generate.1.md)       | Generate structured data based on containers, pods or volumes.              |
   345  | [podman-healthcheck(1)](podman-healthcheck.1.md) | Manage healthchecks for containers                                          |
   346  | [podman-history(1)](podman-history.1.md)         | Show the history of an image.                                               |
   347  | [podman-image(1)](podman-image.1.md)             | Manage images.                                                              |
   348  | [podman-images(1)](podman-images.1.md)           | List images in local storage.                                               |
   349  | [podman-import(1)](podman-import.1.md)           | Import a tarball and save it as a filesystem image.                         |
   350  | [podman-info(1)](podman-info.1.md)               | Display Podman related system information.                                  |
   351  | [podman-init(1)](podman-init.1.md)               | Initialize one or more containers                                           |
   352  | [podman-inspect(1)](podman-inspect.1.md)         | Display a container, image, volume, network, or pod's configuration.        |
   353  | [podman-kill(1)](podman-kill.1.md)               | Kill the main process in one or more containers.                            |
   354  | [podman-load(1)](podman-load.1.md)               | Load image(s) from a tar archive into container storage.                    |
   355  | [podman-login(1)](podman-login.1.md)             | Log in to a container registry.                                             |
   356  | [podman-logout(1)](podman-logout.1.md)           | Log out of a container registry.                                            |
   357  | [podman-logs(1)](podman-logs.1.md)               | Display the logs of one or more containers.                                 |
   358  | [podman-machine(1)](podman-machine.1.md)         | Manage Podman's virtual machine                                             |
   359  | [podman-manifest(1)](podman-manifest.1.md)       | Create and manipulate manifest lists and image indexes.                     |
   360  | [podman-mount(1)](podman-mount.1.md)             | Mount a working container's root filesystem.                                |
   361  | [podman-network(1)](podman-network.1.md)         | Manage Podman networks.                                                     |
   362  | [podman-pause(1)](podman-pause.1.md)             | Pause one or more containers.                                               |
   363  | [podman-kube(1)](podman-kube.1.md)               | Play containers, pods or volumes based on a structured input file.          |
   364  | [podman-pod(1)](podman-pod.1.md)                 | Management tool for groups of containers, called pods.                      |
   365  | [podman-port(1)](podman-port.1.md)               | List port mappings for a container.                                         |
   366  | [podman-ps(1)](podman-ps.1.md)                   | Print out information about containers.                                     |
   367  | [podman-pull(1)](podman-pull.1.md)               | Pull an image from a registry.                                              |
   368  | [podman-push(1)](podman-push.1.md)               | Push an image, manifest list or image index from local storage to elsewhere.|
   369  | [podman-rename(1)](podman-rename.1.md)           | Rename an existing container.                                               |
   370  | [podman-restart(1)](podman-restart.1.md)         | Restart one or more containers.                                             |
   371  | [podman-rm(1)](podman-rm.1.md)                   | Remove one or more containers.                                              |
   372  | [podman-rmi(1)](podman-rmi.1.md)                 | Remove one or more locally stored images.                                   |
   373  | [podman-run(1)](podman-run.1.md)                 | Run a command in a new container.                                           |
   374  | [podman-save(1)](podman-save.1.md)               | Save image(s) to an archive.                                                |
   375  | [podman-search(1)](podman-search.1.md)           | Search a registry for an image.                                             |
   376  | [podman-secret(1)](podman-secret.1.md)           | Manage podman secrets.                                                      |
   377  | [podman-start(1)](podman-start.1.md)             | Start one or more containers.                                               |
   378  | [podman-stats(1)](podman-stats.1.md)             | Display a live stream of one or more container's resource usage statistics. |
   379  | [podman-stop(1)](podman-stop.1.md)               | Stop one or more running containers.                                        |
   380  | [podman-system(1)](podman-system.1.md)           | Manage podman.                                                              |
   381  | [podman-tag(1)](podman-tag.1.md)                 | Add an additional name to a local image.                                    |
   382  | [podman-top(1)](podman-top.1.md)                 | Display the running processes of a container.                               |
   383  | [podman-unmount(1)](podman-unmount.1.md)         | Unmount a working container's root filesystem.                              |
   384  | [podman-unpause(1)](podman-unpause.1.md)         | Unpause one or more containers.                                             |
   385  | [podman-unshare(1)](podman-unshare.1.md)         | Run a command inside of a modified user namespace.                          |
   386  | [podman-untag(1)](podman-untag.1.md)             | Remove one or more names from a locally-stored image.                       |
   387  | [podman-update(1)](podman-update.1.md)           | Update the configuration of a given container.                              |
   388  | [podman-version(1)](podman-version.1.md)         | Display the Podman version information.                                     |
   389  | [podman-volume(1)](podman-volume.1.md)           | Simple management tool for volumes.                                         |
   390  | [podman-wait(1)](podman-wait.1.md)               | Wait on one or more containers to stop and print their exit codes.          |
   391  
   392  ## CONFIGURATION FILES
   393  
   394  **containers.conf** (`/usr/share/containers/containers.conf`, `/etc/containers/containers.conf`, `$HOME/.config/containers/containers.conf`)
   395  
   396  Podman has builtin defaults for command line options. These defaults can be overridden using the containers.conf configuration files.
   397  
   398  Distributions ship the `/usr/share/containers/containers.conf` file with their default settings. Administrators can override fields in this file by creating the `/etc/containers/containers.conf` file.  Users can further modify defaults by creating the `$HOME/.config/containers/containers.conf` file. Podman merges its builtin defaults with the specified fields from these files, if they exist. Fields specified in the users file override the administrator's file, which overrides the distribution's file, which override the built-in defaults.
   399  
   400  Podman uses builtin defaults if no containers.conf file is found.
   401  
   402  If the **CONTAINERS_CONF** environment variable is set, then its value is used for the containers.conf file rather than the default.
   403  
   404  **mounts.conf** (`/usr/share/containers/mounts.conf`)
   405  
   406  The mounts.conf file specifies volume mount directories that are automatically mounted inside containers when executing the `podman run` or `podman start` commands. Administrators can override the defaults file by creating `/etc/containers/mounts.conf`.
   407  
   408  When Podman runs in rootless mode, the file `$HOME/.config/containers/mounts.conf` overrides the default if it exists. For details, see containers-mounts.conf(5).
   409  
   410  **policy.json** (`/etc/containers/policy.json`)
   411  
   412  Signature verification policy files are used to specify policy, e.g. trusted keys, applicable when deciding whether to accept an image, or individual signatures of that image, as valid.
   413  
   414  **registries.conf** (`/etc/containers/registries.conf`, `$HOME/.config/containers/registries.conf`)
   415  
   416  registries.conf is the configuration file which specifies which container registries is consulted when completing image names which do not include a registry or domain portion.
   417  
   418  Non root users of Podman can create the `$HOME/.config/containers/registries.conf` file to be used instead of the system defaults.
   419  
   420  If the **CONTAINERS_REGISTRIES_CONF** environment variable is set, then its value is used for the registries.conf file rather than the default.
   421  
   422  **storage.conf** (`/etc/containers/storage.conf`, `$HOME/.config/containers/storage.conf`)
   423  
   424  storage.conf is the storage configuration file for all tools using containers/storage
   425  
   426  The storage configuration file specifies all of the available container storage options for tools using shared container storage.
   427  
   428  When Podman runs in rootless mode, the file `$HOME/.config/containers/storage.conf` is used instead of the system defaults.
   429  
   430  If the **CONTAINERS_STORAGE_CONF** environment variable is set, then its value is used for the storage.conf file rather than the default.
   431  
   432  ## Rootless mode
   433  Podman can also be used as non-root user. When podman runs in rootless mode, a user namespace is automatically created for the user, defined in /etc/subuid and /etc/subgid.
   434  
   435  Containers created by a non-root user are not visible to other users and are not seen or managed by Podman running as root.
   436  
   437  It is required to have multiple UIDS/GIDS set for a user.  Be sure the user is present in the files `/etc/subuid` and `/etc/subgid`.
   438  
   439  Execute the following commands to add the ranges to the files
   440  
   441  	$ sudo usermod --add-subuids 10000-75535 USERNAME
   442  	$ sudo usermod --add-subgids 10000-75535 USERNAME
   443  
   444  Or just add the content manually.
   445  
   446  	$ echo USERNAME:10000:65536 >> /etc/subuid
   447  	$ echo USERNAME:10000:65536 >> /etc/subgid
   448  
   449  See the `subuid(5)` and `subgid(5)` man pages for more information.
   450  
   451  
   452  
   453  Note: whitespace in any row of /etc/subuid or /etc/subgid, including trailing blanks, may result in no entry failures.
   454  
   455  Images are pulled under `XDG_DATA_HOME` when specified, otherwise in the home directory of the user under `.local/share/containers/storage`.
   456  
   457  Currently slirp4netns or pasta is required to be installed to create a network
   458  device, otherwise rootless containers need to run in the network namespace of
   459  the host.
   460  
   461  In certain environments like HPC (High Performance Computing), users cannot take advantage of the additional UIDs and GIDs from the /etc/subuid and /etc/subgid systems.  However, in this environment, rootless Podman can operate with a single UID.  To make this work, set the `ignore_chown_errors` option in the `containers-storage.conf(5)` file. This option tells Podman when pulling an image to ignore chown errors when attempting to change a file in a container image to match the non-root UID in the image. This means all files get saved as the user's UID. Note this can cause issues when running the container.
   462  
   463  ### **NOTE:** Unsupported file systems in rootless mode
   464  
   465  The Overlay file system (OverlayFS) is not supported with kernels prior to 5.12.9 in rootless mode.  The fuse-overlayfs package is a tool that provides the functionality of OverlayFS in user namespace that allows mounting file systems in rootless environments.  It is recommended to install the fuse-overlayfs package.  In rootless mode, Podman automatically uses the fuse-overlayfs program as the mount_program if installed, as long as the $HOME/.config/containers/storage.conf file was not previously created.  If storage.conf exists in the homedir, add `mount_program = "/usr/bin/fuse-overlayfs"` under `[storage.options.overlay]` to enable this feature.
   466  
   467  The Network File System (NFS) and other distributed file systems (for example: Lustre, Spectrum Scale, the General Parallel File System (GPFS)) are not supported when running in rootless mode as these file systems do not understand user namespace.  However, rootless Podman can make use of an NFS Homedir by modifying the `$HOME/.config/containers/storage.conf` to have the `graphroot` option point to a directory stored on local (Non NFS) storage.
   468  
   469  For more information, see the [Podman Troubleshooting Page](https://github.com/containers/podman/blob/main/troubleshooting.md).
   470  
   471  ## SEE ALSO
   472  **[containers-mounts.conf(5)](https://github.com/containers/common/blob/main/docs/containers-mounts.conf.5.md)**, **[containers.conf(5)](https://github.com/containers/common/blob/main/docs/containers.conf.5.md)**, **[containers-registries.conf(5)](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md)**, **[containers-storage.conf(5)](https://github.com/containers/storage/blob/main/docs/containers-storage.conf.5.md)**, **[buildah(1)](https://github.com/containers/buildah/blob/main/docs/buildah.1.md)**, **oci-hooks(5)**, **[containers-policy.json(5)](https://github.com/containers/image/blob/main/docs/containers-policy.json.5.md)**, **[crun(1)](https://github.com/containers/crun/blob/main/crun.1.md)**, **[runc(8)](https://github.com/opencontainers/runc/blob/main/man/runc.8.md)**, **[subuid(5)](https://www.unix.com/man-page/linux/5/subuid)**, **[subgid(5)](https://www.unix.com/man-page/linux/5/subgid)**, **[slirp4netns(1)](https://github.com/rootless-containers/slirp4netns/blob/master/slirp4netns.1.md)**, **[pasta(1)](https://passt.top/builds/latest/web/passt.1.html)**, **[conmon(8)](https://github.com/containers/conmon/blob/main/docs/conmon.8.md)**
   473  
   474  ## HISTORY
   475  Dec 2016, Originally compiled by Dan Walsh <dwalsh@redhat.com>