github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/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  #### **--conmon**
    36  Path of the conmon binary (Default path is configured in `containers.conf`)
    37  
    38  #### **--connection**, **-c**
    39  Connection to use for remote podman, including Mac and Windows (excluding WSL2) machines, (Default connection is configured in `containers.conf`)
    40  Setting this option will switch the **--remote** option to true.
    41  Remote connections use local containers.conf for default.
    42  
    43  #### **--events-backend**=*type*
    44  
    45  Backend to use for storing events. Allowed values are **file**, **journald**, and
    46  **none**. When *file* is specified, the events are stored under a subdirectory
    47  of the *tmpdir* location (see **--tmpdir** below).
    48  
    49  #### **--help**, **-h**
    50  
    51  Print usage statement
    52  
    53  #### **--hooks-dir**=*path*
    54  
    55  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.
    56  
    57  This option may be set multiple times; paths from later options have higher precedence (`oci-hooks(5)` discusses directory precedence).
    58  
    59  For the annotation conditions, libpod uses any annotations set in the generated OCI configuration.
    60  
    61  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.
    62  
    63  If `--hooks-dir` is unset for root callers, Podman and libpod will 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, and callers should migrate to explicitly setting `--hooks-dir`.
    64  
    65  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.
    66  
    67  **WARNING**: the `precreate` hook lets you do powerful things, such as adding additional mounts to the runtime configuration.  That power also makes it easy to break things.  Before reporting libpod errors, try running your container with `precreate` hooks disabled to see if the problem is due to one of your hooks.
    68  
    69  #### **--identity**=*path*
    70  
    71  Path to ssh identity file. If the identity file has been encrypted, podman prompts the user for the passphrase.
    72  If no identity file is provided and no user is given, podman defaults to the user running the podman command.
    73  Podman prompts for the login password on the remote server.
    74  
    75  Identity value resolution precedence:
    76   - command line value
    77   - environment variable `CONTAINER_SSHKEY`, if `CONTAINER_HOST` is found
    78   - `containers.conf`
    79  Remote connections use local containers.conf for default.
    80  
    81  #### **--log-level**=*level*
    82  
    83  Log messages at and above specified level: debug, info, warn, error, fatal or panic (default: "warn")
    84  
    85  #### **--namespace**=*namespace*
    86  
    87  Set libpod namespace. Namespaces are used to separate groups of containers and pods in libpod's state.
    88  When namespace is set, created containers and pods will join the given namespace, and only containers and pods in the given namespace will be visible to Podman.
    89  
    90  #### **--network-cmd-path**=*path*
    91  Path to the command binary to use for setting up a network.  It is currently only used for setting up a slirp4netns network.  If "" is used then the binary is looked up using the $PATH environment variable.
    92  
    93  #### **--network-config-dir**=*directory*
    94  
    95  Path to the directory where network configuration files are located.
    96  For the CNI backend the default is "/etc/cni/net.d" as root
    97  and "$HOME/.config/cni/net.d" as rootless.
    98  For the netavark backend "/etc/containers/networks" is used as root
    99  and "$graphroot/networks" as rootless.
   100  
   101  #### **--noout**
   102  
   103  Redirect stdout to /dev/null. This command will prevent all stdout from the Podman command. The **--noout**  option will not block stderr or stdout from containers.
   104  
   105  #### **--remote**, **-r**
   106  When true, access to the Podman service will be remote. Defaults to false.
   107  Settings can be modified in the containers.conf file. If the CONTAINER_HOST
   108  environment variable is set, the **--remote** option defaults to true.
   109  
   110  #### **--root**=*value*
   111  
   112  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).
   113  Default root dir configured in `/etc/containers/storage.conf`.
   114  
   115  Overriding this option will cause the *storage-opt* settings in /etc/containers/storage.conf to be ignored.  The user must specify additional options via the `--storage-opt` flag.
   116  
   117  #### **--runroot**=*value*
   118  
   119  Storage state directory where all state information is stored (default: "/run/containers/storage" for UID 0, "/run/user/$UID/run" for other users).
   120  Default state dir configured in `/etc/containers/storage.conf`.
   121  
   122  #### **--runtime**=*value*
   123  
   124  Name of the OCI runtime as specified in containers.conf or absolute path to the OCI compatible binary used to run containers.
   125  
   126  #### **--runtime-flag**=*flag*
   127  
   128  Adds global flags for the container runtime. To list the supported flags, please
   129  consult the manpages of the selected container runtime (`runc` is the default
   130  runtime, the manpage to consult is `runc(8)`.  When the machine is configured
   131  for cgroup V2, the default runtime is `crun`, the manpage to consult is `crun(8)`.).
   132  
   133  Note: Do not pass the leading `--` to the flag. To pass the runc flag `--log-format json`
   134  to podman build, the option given would be `--runtime-flag log-format=json`.
   135  
   136  #### **--storage-driver**=*value*
   137  
   138  Storage driver.  The default storage driver for UID 0 is configured in /etc/containers/storage.conf (`$HOME/.config/containers/storage.conf` 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.
   139  
   140  Overriding this option will cause the *storage-opt* settings in /etc/containers/storage.conf to be ignored.  The user must
   141  specify additional options via the `--storage-opt` flag.
   142  
   143  #### **--storage-opt**=*value*
   144  
   145  Storage driver option, Default storage driver options are configured in /etc/containers/storage.conf (`$HOME/.config/containers/storage.conf` in rootless mode). The `STORAGE_OPTS` environment variable overrides the default. The --storage-opt specified options overrides all. If you specify --storage-opt="", no storage options will be used.
   146  
   147  #### **--syslog**
   148  
   149  Output logging information to syslog as well as the console (default *false*).
   150  
   151  On remote clients, including Mac and Windows (excluding WSL2) machines, logging is directed to the file $HOME/.config/containers/podman.log.
   152  
   153  #### **--tmpdir**
   154  
   155  Path to the tmp directory, for libpod runtime content.
   156  
   157  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`.
   158  
   159  #### **--url**=*value*
   160  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`).
   161  Setting this option will switch the **--remote** option to true.
   162  
   163   - `CONTAINER_HOST` is of the format `<schema>://[<user[:<password>]@]<host>[:<port>][<path>]`
   164  
   165  Details:
   166   - `schema` is one of:
   167     * `ssh` (default): a local unix(7) socket on the named `host` and `port`, reachable via SSH
   168     * `tcp`: an unencrypted, unauthenticated TCP connection to the named `host` and `port`
   169     * `unix`: a local unix(7) socket at the specified `path`, or the default for the user
   170   - `user` will default to either `root` or the current running user (`ssh` only)
   171   - `password` has no default (`ssh` only)
   172   - `host` must be provided and is either the IP or name of the machine hosting the Podman service (`ssh` and `tcp`)
   173   - `port` defaults to 22 (`ssh` and `tcp`)
   174   - `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`)
   175  
   176  URL value resolution precedence:
   177   - command line value
   178   - environment variable `CONTAINER_HOST`
   179   - `containers.conf` `service_destinations` table
   180   - `unix://run/podman/podman.sock`
   181  
   182  Remote connections use local containers.conf for default.
   183  
   184  Some example URL values in valid formats:
   185   - unix://run/podman/podman.sock
   186   - unix://run/user/$UID/podman/podman.sock
   187   - ssh://notroot@localhost:22/run/user/$UID/podman/podman.sock
   188   - ssh://root@localhost:22/run/podman/podman.sock
   189   - tcp://localhost:34451
   190   - tcp://127.0.0.1:34451
   191  
   192  #### **--version**, **-v**
   193  
   194  Print the version
   195  
   196  #### **--volumepath**=*value*
   197  
   198  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`.
   199  
   200  ## Environment Variables
   201  
   202  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.
   203  
   204  #### **CONTAINERS_CONF**
   205  
   206  Set default locations of containers.conf file
   207  
   208  #### **CONTAINERS_REGISTRIES_CONF**
   209  
   210  Set default location of the registries.conf file.
   211  
   212  #### **CONTAINERS_STORAGE_CONF**
   213  
   214  Set default location of the storage.conf file.
   215  
   216  #### **CONTAINER_CONNECTION**
   217  
   218  Override default `--connection` value to access Podman service. Also enabled --remote option.
   219  
   220  #### **CONTAINER_HOST**
   221  
   222  Set default `--url` value to access Podman service. Also enabled --remote option.
   223  
   224  #### **CONTAINER_SSHKEY**
   225  
   226  Set default `--identity` path to ssh key file value used to access Podman service.
   227  
   228  #### **STORAGE_DRIVER**
   229  
   230  Set default `--storage-driver` value.
   231  
   232  #### **STORAGE_OPTS**
   233  
   234  Set default `--storage-opts` value.
   235  
   236  #### **TMPDIR**
   237  
   238  Set the temporary storage location of downloaded container images. Podman defaults to use `/var/tmp`.
   239  
   240  #### **XDG_CONFIG_HOME**
   241  
   242  In Rootless mode configuration files are read from `XDG_CONFIG_HOME` when
   243  specified, otherwise in the home directory of the user under
   244  `$HOME/.config/containers`.
   245  
   246  #### **XDG_DATA_HOME**
   247  
   248  In Rootless mode images are pulled under `XDG_DATA_HOME` when specified,
   249  otherwise in the home directory of the user under
   250  `$HOME/.local/share/containers/storage`.
   251  
   252  #### **XDG_RUNTIME_DIR**
   253  
   254  In Rootless mode temporary configuration data is stored in `${XDG_RUNTIME_DIR}/containers`.
   255  
   256  ## Remote Access
   257  
   258  The Podman command can be used with remote services using the `--remote` flag. Connections can
   259  be made using local unix domain sockets, ssh or directly to tcp sockets. When specifying the
   260  podman --remote flag, only the global options `--url`, `--identity`, `--log-level`, `--connection` are used.
   261  
   262  Connection information can also be managed using the containers.conf file.
   263  
   264  ## Exit Codes
   265  
   266  The exit code from `podman` gives information about why the container
   267  failed to run or why it exited.  When `podman` commands exit with a non-zero code,
   268  the exit codes follow the `chroot` standard, see below:
   269  
   270    **125** The error is with podman **_itself_**
   271  
   272      $ podman run --foo busybox; echo $?
   273      Error: unknown flag: --foo
   274      125
   275  
   276    **126** Executing a _contained command_ and the _command_ cannot be invoked
   277  
   278      $ podman run busybox /etc; echo $?
   279      Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
   280      126
   281  
   282    **127** Executing a _contained command_ and the _command_ cannot be found
   283      $ podman run busybox foo; echo $?
   284      Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
   285      127
   286  
   287    **Exit code** _contained command_ exit code
   288  
   289      $ podman run busybox /bin/sh -c 'exit 3'; echo $?
   290      3
   291  
   292  
   293  ## COMMANDS
   294  
   295  | Command                                          | Description                                                                 |
   296  | ------------------------------------------------ | --------------------------------------------------------------------------- |
   297  | [podman-attach(1)](podman-attach.1.md)           | Attach to a running container.                                              |
   298  | [podman-auto-update(1)](podman-auto-update.1.md) | Auto update containers according to their auto-update policy                |
   299  | [podman-build(1)](podman-build.1.md)             | Build a container image using a Containerfile.                              |
   300  | [podman-commit(1)](podman-commit.1.md)           | Create new image based on the changed container.                            |
   301  | [podman-completion(1)](podman-completion.1.md)   | Generate shell completion scripts                                           |
   302  | [podman-container(1)](podman-container.1.md)     | Manage containers.                                                          |
   303  | [podman-cp(1)](podman-cp.1.md)                   | Copy files/folders between a container and the local filesystem.            |
   304  | [podman-create(1)](podman-create.1.md)           | Create a new container.                                                     |
   305  | [podman-diff(1)](podman-diff.1.md)               | Inspect changes on a container or image's filesystem.                       |
   306  | [podman-events(1)](podman-events.1.md)           | Monitor Podman events                                                       |
   307  | [podman-exec(1)](podman-exec.1.md)               | Execute a command in a running container.                                   |
   308  | [podman-export(1)](podman-export.1.md)           | Export a container's filesystem contents as a tar archive.                  |
   309  | [podman-generate(1)](podman-generate.1.md)       | Generate structured data based on containers, pods or volumes.              |
   310  | [podman-healthcheck(1)](podman-healthcheck.1.md) | Manage healthchecks for containers                                          |
   311  | [podman-history(1)](podman-history.1.md)         | Show the history of an image.                                               |
   312  | [podman-image(1)](podman-image.1.md)             | Manage images.                                                              |
   313  | [podman-images(1)](podman-images.1.md)           | List images in local storage.                                               |
   314  | [podman-import(1)](podman-import.1.md)           | Import a tarball and save it as a filesystem image.                         |
   315  | [podman-info(1)](podman-info.1.md)               | Displays Podman related system information.                                 |
   316  | [podman-init(1)](podman-init.1.md)               | Initialize one or more containers                                           |
   317  | [podman-inspect(1)](podman-inspect.1.md)         | Display a container, image, volume, network, or pod's configuration.        |
   318  | [podman-kill(1)](podman-kill.1.md)               | Kill the main process in one or more containers.                            |
   319  | [podman-load(1)](podman-load.1.md)               | Load image(s) from a tar archive into container storage.                    |
   320  | [podman-login(1)](podman-login.1.md)             | Login to a container registry.                                              |
   321  | [podman-logout(1)](podman-logout.1.md)           | Logout of a container registry.                                             |
   322  | [podman-logs(1)](podman-logs.1.md)               | Display the logs of one or more containers.                                 |
   323  | [podman-machine(1)](podman-machine.1.md)         | Manage Podman's virtual machine                                             |
   324  | [podman-manifest(1)](podman-manifest.1.md)       | Create and manipulate manifest lists and image indexes.                     |
   325  | [podman-mount(1)](podman-mount.1.md)             | Mount a working container's root filesystem.                                |
   326  | [podman-network(1)](podman-network.1.md)         | Manage Podman networks.                                                     |
   327  | [podman-pause(1)](podman-pause.1.md)             | Pause one or more containers.                                               |
   328  | [podman-play(1)](podman-play.1.md)               | Play containers, pods or volumes based on a structured input file.          |
   329  | [podman-pod(1)](podman-pod.1.md)                 | Management tool for groups of containers, called pods.                      |
   330  | [podman-port(1)](podman-port.1.md)               | List port mappings for a container.                                         |
   331  | [podman-ps(1)](podman-ps.1.md)                   | Prints out information about containers.                                    |
   332  | [podman-pull(1)](podman-pull.1.md)               | Pull an image from a registry.                                              |
   333  | [podman-push(1)](podman-push.1.md)               | Push an image, manifest list or image index from local storage to elsewhere.|
   334  | [podman-rename(1)](podman-rename.1.md)           | Rename an existing container.                                               |
   335  | [podman-restart(1)](podman-restart.1.md)         | Restart one or more containers.                                             |
   336  | [podman-rm(1)](podman-rm.1.md)                   | Remove one or more containers.                                              |
   337  | [podman-rmi(1)](podman-rmi.1.md)                 | Removes one or more locally stored images.                                  |
   338  | [podman-run(1)](podman-run.1.md)                 | Run a command in a new container.                                           |
   339  | [podman-save(1)](podman-save.1.md)               | Save image(s) to an archive.                                                |
   340  | [podman-search(1)](podman-search.1.md)           | Search a registry for an image.                                             |
   341  | [podman-secret(1)](podman-secret.1.md)           | Manage podman secrets.                                                      |
   342  | [podman-start(1)](podman-start.1.md)             | Start one or more containers.                                               |
   343  | [podman-stats(1)](podman-stats.1.md)             | Display a live stream of one or more container's resource usage statistics. |
   344  | [podman-stop(1)](podman-stop.1.md)               | Stop one or more running containers.                                        |
   345  | [podman-system(1)](podman-system.1.md)           | Manage podman.                                                              |
   346  | [podman-tag(1)](podman-tag.1.md)                 | Add an additional name to a local image.                                    |
   347  | [podman-top(1)](podman-top.1.md)                 | Display the running processes of a container.                               |
   348  | [podman-unmount(1)](podman-unmount.1.md)         | Unmount a working container's root filesystem.                              |
   349  | [podman-unpause(1)](podman-unpause.1.md)         | Unpause one or more containers.                                             |
   350  | [podman-unshare(1)](podman-unshare.1.md)         | Run a command inside of a modified user namespace.                          |
   351  | [podman-untag(1)](podman-untag.1.md)             | Removes one or more names from a locally-stored image.                      |
   352  | [podman-version(1)](podman-version.1.md)         | Display the Podman version information.                                     |
   353  | [podman-volume(1)](podman-volume.1.md)           | Simple management tool for volumes.                                         |
   354  | [podman-wait(1)](podman-wait.1.md)               | Wait on one or more containers to stop and print their exit codes.          |
   355  
   356  ## CONFIGURATION FILES
   357  
   358  **containers.conf** (`/usr/share/containers/containers.conf`, `/etc/containers/containers.conf`, `$HOME/.config/containers/containers.conf`)
   359  
   360  Podman has builtin defaults for command line options. These defaults can be overridden using the containers.conf configuration files.
   361  
   362  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.
   363  
   364  Podman uses builtin defaults if no containers.conf file is found.
   365  
   366  If the **CONTAINERS_CONF** environment variable is set, then its value is used for the containers.conf file rather than the default.
   367  
   368  **mounts.conf** (`/usr/share/containers/mounts.conf`)
   369  
   370  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`.
   371  
   372  When Podman runs in rootless mode, the file `$HOME/.config/containers/mounts.conf` will override the default if it exists. Please refer to containers-mounts.conf(5) for further details.
   373  
   374  **policy.json** (`/etc/containers/policy.json`)
   375  
   376  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.
   377  
   378  **registries.conf** (`/etc/containers/registries.conf`, `$HOME/.config/containers/registries.conf`)
   379  
   380  registries.conf is the configuration file which specifies which container registries should be consulted when completing image names which do not include a registry or domain portion.
   381  
   382  Non root users of Podman can create the `$HOME/.config/containers/registries.conf` file to be used instead of the system defaults.
   383  
   384  If the **CONTAINERS_REGISTRIES_CONF** environment variable is set, then its value is used for the registries.conf file rather than the default.
   385  
   386  **storage.conf** (`/etc/containers/storage.conf`, `$HOME/.config/containers/storage.conf`)
   387  
   388  storage.conf is the storage configuration file for all tools using containers/storage
   389  
   390  The storage configuration file specifies all of the available container storage options for tools using shared container storage.
   391  
   392  When Podman runs in rootless mode, the file `$HOME/.config/containers/storage.conf` is used instead of the system defaults.
   393  
   394  If the **CONTAINERS_STORAGE_CONF** environment variable is set, then its value is used for the storage.conf file rather than the default.
   395  
   396  ## Rootless mode
   397  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.
   398  
   399  Containers created by a non-root user are not visible to other users and are not seen or managed by Podman running as root.
   400  
   401  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`.
   402  
   403  If you have a recent version of usermod, you can execute the following
   404  commands to add the ranges to the files
   405  
   406  	$ sudo usermod --add-subuids 10000-75535 USERNAME
   407  	$ sudo usermod --add-subgids 10000-75535 USERNAME
   408  
   409  Or just add the content manually.
   410  
   411  	$ echo USERNAME:10000:65536 >> /etc/subuid
   412  	$ echo USERNAME:10000:65536 >> /etc/subgid
   413  
   414  See the `subuid(5)` and `subgid(5)` man pages for more information.
   415  
   416  Images are pulled under `XDG_DATA_HOME` when specified, otherwise in the home directory of the user under `.local/share/containers/storage`.
   417  
   418  Currently the slirp4netns package is required to be installed to create a network device, otherwise rootless containers need to run in the network namespace of the host.
   419  
   420  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 /etc/containers/storage.conf or in ~/.config/containers/storage.conf files. 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 could cause issues when running the container.
   421  
   422  ### **NOTE:** Unsupported file systems in rootless mode
   423  
   424  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 will automatically use 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.
   425  
   426  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.
   427  
   428  For more information, please refer to the [Podman Troubleshooting Page](https://github.com/containers/podman/blob/main/troubleshooting.md).
   429  
   430  ## SEE ALSO
   431  **[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/master/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)**, **[conmon(8)](https://github.com/containers/conmon/blob/main/docs/conmon.8.md)**
   432  
   433  ## HISTORY
   434  Dec 2016, Originally compiled by Dan Walsh <dwalsh@redhat.com>