diff options
Diffstat (limited to 'docs')
117 files changed, 1366 insertions, 984 deletions
diff --git a/docs/Readme.md b/docs/Readme.md index 12b78d48f..ae0067be6 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -50,6 +50,5 @@ the following: If reloading the page, or clearing your local cache does not fix the problem, it is likely caused by broken metadata needed to protect clients from cross-site-scripting style attacks. Please [notify a maintainer](https://github.com/containers/podman#communications) -so they may investigate how/why the swagger.yaml file's CORS-metadata is incorrect. See -[the Cirrus-CI tasks documentation](../contrib/cirrus/README.md#docs-task) for -details regarding this situation. +so they may investigate how/why the `swagger.yaml` file's CORS-metadata is +incorrect, or the file isn't accessible for some other reason. diff --git a/docs/requirements.txt b/docs/requirements.txt index 44af373ac..84e7ec6a5 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,3 +2,5 @@ # use md instead of rst recommonmark +# needed for markdown table support +sphinx-markdown-tables diff --git a/docs/source/Commands.rst b/docs/source/Commands.rst index 096bdbedf..cd5d894da 100644 --- a/docs/source/Commands.rst +++ b/docs/source/Commands.rst @@ -3,6 +3,7 @@ Commands ======== +:doc:`Podman <markdown/podman.1>` (Pod Manager) Global Options, Environment Variables, Exit Codes, Configuration Files, and more :doc:`attach <markdown/podman-attach.1>` Attach to a running container diff --git a/docs/source/Tutorials.rst b/docs/source/Tutorials.rst index 83818e3ae..e3e869d5b 100644 --- a/docs/source/Tutorials.rst +++ b/docs/source/Tutorials.rst @@ -2,7 +2,7 @@ Tutorials ========= -Here are a number of useful tutorials to get you up and running with Podman. If you are familiar with the Docker `Container Engine`_ the command in Podman_ should be quite familiar. If are brand new to containers, take a look at our `Introduction`. +Here are a number of useful tutorials to get you up and running with Podman. If you are familiar with the Docker `Container Engine`_ the command in Podman_ should be quite familiar. If you are brand new to containers, take a look at our `Introduction`. * `Basic Setup and Use of Podman <https://github.com/containers/podman/blob/master/docs/tutorials/podman_tutorial.md>`_: Learn how to setup Podman and perform some basic commands with the utility. * `Basic Setup and Use of Podman in a Rootless environment <https://github.com/containers/podman/blob/master/docs/tutorials/rootless_tutorial.md>`_: The steps required to setup rootless Podman are enumerated. diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 000000000..6974d8514 --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,7 @@ +h2,h3,h4,h5,h6{ + /* Sphinx doesn't respect using a h4 header without using h1,h2,h3. + The flag names will be rendered as h2 and by default way to big + so make the font size for all headers except h1 smaller. + */ + font-size: 120% !important; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index d95290f72..e3715937d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,9 +17,9 @@ # -- Project information ----------------------------------------------------- -project = 'Podman' -copyright = '2019, team' -author = 'team' +project = "Podman" +copyright = "2019, team" +author = "team" # -- General configuration --------------------------------------------------- @@ -28,30 +28,38 @@ author = 'team' # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'recommonmark', + "sphinx_markdown_tables", ] +source_parsers = { + ".md": "recommonmark.parser.CommonMarkParser", +} + + # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [] -master_doc = 'index' +master_doc = "index" # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +html_theme = "alabaster" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] +html_css_files = [ + "custom.css", +] # -- Extension configuration ------------------------------------------------- diff --git a/docs/source/managecontainers.rst b/docs/source/managecontainers.rst index 849fd1d25..9926f9996 100644 --- a/docs/source/managecontainers.rst +++ b/docs/source/managecontainers.rst @@ -39,6 +39,8 @@ Manage Containers :doc:`prune <markdown/podman-container-prune.1>` Remove all stopped containers +:doc:`ps <markdown/podman-ps.1>` List containers + :doc:`restart <markdown/podman-restart.1>` Restart one or more containers :doc:`restore <markdown/podman-container-restore.1>` Restores one or more containers from a checkpoint diff --git a/docs/source/markdown/containers-mounts.conf.5.md b/docs/source/markdown/containers-mounts.conf.5.md index 130c1c523..74492c831 100644 --- a/docs/source/markdown/containers-mounts.conf.5.md +++ b/docs/source/markdown/containers-mounts.conf.5.md @@ -10,7 +10,7 @@ The mounts.conf file specifies volume mount directories that are automatically m The format of the mounts.conf is the volume format `/SRC:/DEST`, one mount per line. For example, a mounts.conf with the line `/usr/share/secrets:/run/secrets` would cause the contents of the `/usr/share/secrets` directory on the host to be mounted on the `/run/secrets` directory inside the container. Setting mountpoints allows containers to use the files of the host, for instance, to use the host's subscription to some enterprise Linux distribution. ## FILES -Some distributions may provide a `/usr/share/containers/mounts.conf` file to provide default mounts, but users can create a `/etc/containers/mounts.conf`, to specify their own special volumes to mount in the container. +Some distributions may provide a `/usr/share/containers/mounts.conf` file to provide default mounts, but users can create a `/etc/containers/mounts.conf`, to specify their own special volumes to mount in the container. When Podman runs in rootless mode, the file `$HOME/.config/containers/mounts.conf` will override the default if it exists. ## HISTORY Aug 2018, Originally compiled by Valentin Rothberg <vrothberg@suse.com> diff --git a/docs/source/markdown/links/podman-list.1 b/docs/source/markdown/links/podman-list.1 deleted file mode 100644 index f7f44c704..000000000 --- a/docs/source/markdown/links/podman-list.1 +++ /dev/null @@ -1 +0,0 @@ -.so man1/podman-ps.1 diff --git a/docs/source/markdown/links/podman-ls.1 b/docs/source/markdown/links/podman-ls.1 deleted file mode 100644 index f7f44c704..000000000 --- a/docs/source/markdown/links/podman-ls.1 +++ /dev/null @@ -1 +0,0 @@ -.so man1/podman-ps.1 diff --git a/docs/source/markdown/podman-attach.1.md b/docs/source/markdown/podman-attach.1.md index cb3ffa92e..06d3c205d 100644 --- a/docs/source/markdown/podman-attach.1.md +++ b/docs/source/markdown/podman-attach.1.md @@ -18,22 +18,22 @@ Configure the keys sequence using the **--detach-keys** option, or specifying it in the **containers.conf** file: see **containers.conf(5)** for more information. ## OPTIONS -**--detach-keys**=*sequence* +#### **--detach-keys**=*sequence* Specify the key sequence for detaching a container. Format is a single character `[a-Z]` or one or more `ctrl-<value>` characters where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`. Specifying "" will disable this feature. The default is *ctrl-p,ctrl-q*. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--no-stdin** +#### **--no-stdin** Do not attach STDIN. The default is false. -**--sig-proxy**=*true*|*false* +#### **--sig-proxy**=*true*|*false* Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is *true*. diff --git a/docs/source/markdown/podman-auto-update.1.md b/docs/source/markdown/podman-auto-update.1.md index 3ab097388..76dc85180 100644 --- a/docs/source/markdown/podman-auto-update.1.md +++ b/docs/source/markdown/podman-auto-update.1.md @@ -28,7 +28,7 @@ Systemd units that start and stop a container cannot run a new image. ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. diff --git a/docs/source/markdown/podman-build.1.md b/docs/source/markdown/podman-build.1.md index f1fddb2fc..4570bf3ff 100644 --- a/docs/source/markdown/podman-build.1.md +++ b/docs/source/markdown/podman-build.1.md @@ -9,67 +9,93 @@ podman\-build - Build a container image using a Containerfile **podman image build** [*options*] [*context*] ## DESCRIPTION -**podman build** Builds an image using instructions from one or more Containerfiles or Dockerfiles and a specified build context directory. A Containerfile uses the same syntax as a Dockerfile internally. For this document, a file referred to as a Containerfile can be a file named either 'Containerfile' or 'Dockerfile'. +**podman build** Builds an image using instructions from one or more +Containerfiles or Dockerfiles and a specified build context directory. A +Containerfile uses the same syntax as a Dockerfile internally. For this +document, a file referred to as a Containerfile can be a file named either +'Containerfile' or 'Dockerfile'. -The build context directory can be specified as the http(s) URL of an archive, git repository or Containerfile. +The build context directory can be specified as the http(s) URL of an archive, +git repository or Containerfile. -If no context directory is specified, then Podman will assume the current working directory as the build context, which should contain the Containerfile. +If no context directory is specified, then Podman will assume the current +working directory as the build context, which should contain the Containerfile. -Containerfiles ending with a ".in" suffix will be preprocessed via CPP(1). This can be useful to decompose Containerfiles into several reusable parts that can be used via CPP's **#include** directive. Notice, a Containerfile.in file can still be used by other tools when manually preprocessing them via `cpp -E`. +Containerfiles ending with a ".in" suffix will be preprocessed via CPP(1). This +can be useful to decompose Containerfiles into several reusable parts that can +be used via CPP's **#include** directive. Notice, a Containerfile.in file can +still be used by other tools when manually preprocessing them via `cpp -E`. -When the URL is an archive, the contents of the URL is downloaded to a temporary location and extracted before execution. +When the URL is an archive, the contents of the URL is downloaded to a temporary +location and extracted before execution. -When the URL is an Containerfile, the Containerfile is downloaded to a temporary location. +When the URL is an Containerfile, the Containerfile is downloaded to a temporary +location. -When a Git repository is set as the URL, the repository is cloned locally and then set as the context. +When a Git repository is set as the URL, the repository is cloned locally and +then set as the context. -NOTE: `podman build` uses code sourced from the `buildah` project to build container images. This `buildah` code creates `buildah` containers for the `RUN` options in container storage. In certain situations, when the `podman build` crashes or users kill the `podman build` process, these external containers can be left in container storage. Use the `podman ps --all --storage` command to see these contaienrs. External containers can be removed with the `podman rm --storage` command. +NOTE: `podman build` uses code sourced from the `buildah` project to build +container images. This `buildah` code creates `buildah` containers for the +`RUN` options in container storage. In certain situations, when the +`podman build` crashes or users kill the `podman build` process, these external +containers can be left in container storage. Use the `podman ps --all --storage` +command to see these contaienrs. External containers can be removed with the +`podman rm --storage` command. ## OPTIONS -**--add-host**=*host* +#### **--add-host**=*host* Add a custom host-to-IP mapping (host:ip) -Add a line to /etc/hosts. The format is hostname:ip. The **--add-host** option can be set multiple times. +Add a line to /etc/hosts. The format is hostname:ip. The **--add-host** option +can be set multiple times. -**--annotation**=*annotation* +#### **--annotation**=*annotation* -Add an image *annotation* (e.g. annotation=*value*) to the image metadata. Can be used multiple times. +Add an image *annotation* (e.g. annotation=*value*) to the image metadata. Can +be used multiple times. -Note: this information is not present in Docker image formats, so it is discarded when writing images in Docker formats. +Note: this information is not present in Docker image formats, so it is +discarded when writing images in Docker formats. -**--arch**=*arch* +#### **--arch**=*arch* -Set the ARCH of the image to the provided value instead of the architecture of the host. +Set the ARCH of the image to the provided value instead of the architecture of +the host. -**--authfile**=*path* +#### **--authfile**=*path* -Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. -If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. +Path of the authentication file. Default is +${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. +If the authorization state is not found there, $HOME/.docker/config.json is +checked, which is set using `docker login`. -Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE -environment variable. `export REGISTRY_AUTH_FILE=path` +Note: You can also override the default path of the authentication file by +setting the REGISTRY\_AUTH\_FILE environment variable. +`export REGISTRY_AUTH_FILE=path` -**--build-arg**=*arg=value* +#### **--build-arg**=*arg=value* Specifies a build argument and its value, which will be interpolated in instructions read from the Containerfiles in the same way that environment variables are, but which will not be added to environment variable list in the resulting image's configuration. -**--cache-from** +#### **--cache-from** -Images to utilize as potential cache sources. Podman does not currently support caching so this is a NOOP. +Images to utilize as potential cache sources. Podman does not currently support +caching so this is a NOOP. -**--cap-add**=*CAP\_xxx* +#### **--cap-add**=*CAP\_xxx* When executing RUN instructions, run the command specified in the instruction with the specified capability added to its capability set. Certain capabilities are granted by default; this option can be used to add more. -**--cap-drop**=*CAP\_xxx* +#### **--cap-drop**=*CAP\_xxx* When executing RUN instructions, run the command specified in the instruction with the specified capability removed from its capability set. @@ -82,34 +108,37 @@ If a capability is specified to both the **--cap-add** and **--cap-drop** options, it will be dropped, regardless of the order in which the options were given. -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. -Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) +Default certificates directory is _/etc/containers/certs.d_. (Not available for +remote commands) -**--cgroup-parent**=*path* +#### **--cgroup-parent**=*path* -Path to cgroups under which the cgroup for the container will be created. If the path is not absolute, the path is considered to be relative to the cgroups path of the init process. Cgroups will be created if they do not already exist. +Path to cgroups under which the cgroup for the container will be created. If the +path is not absolute, the path is considered to be relative to the cgroups path +of the init process. Cgroups will be created if they do not already exist. -**--compress** +#### **--compress** This option is added to be aligned with other containers CLIs. Podman doesn't communicate with a daemon or a remote server. Thus, compressing the data before sending it is irrelevant to Podman. -**--cni-config-dir**=*directory* +#### **--cni-config-dir**=*directory* Location of CNI configuration files which will dictate which plugins will be used to configure network interfaces and routing for containers created for handling `RUN` instructions, if those containers will be run in their own network namespaces, and networking is not disabled. -**--cni-plugin-path**=*directory[:directory[:directory[...]]]* +#### **--cni-plugin-path**=*directory[:directory[:directory[...]]]* List of directories in which the CNI plugins which will be used for configuring network namespaces can be found. -**--cpu-period**=*limit* +#### **--cpu-period**=*limit* Set the CPU period for the Completely Fair Scheduler (CFS), which is a duration in microseconds. Once the container's CPU quota is used up, it will @@ -120,7 +149,7 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-quota**=*limit* +#### **--cpu-quota**=*limit* Limit the CPU Completely Fair Scheduler (CFS) quota. @@ -133,13 +162,13 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-shares**, **-c**=*shares* +#### **--cpu-shares**, **-c**=*shares* CPU shares (relative weight) -By default, all containers get the same proportion of CPU cycles. This proportion -can be modified by changing the container's CPU share weighting relative -to the weighting of all other running containers. +By default, all containers get the same proportion of CPU cycles. This +proportion can be modified by changing the container's CPU share weighting +relative to the weighting of all other running containers. To modify the proportion from the default of 1024, use the **--cpu-shares** flag to set the weighting to 2 or higher. @@ -162,7 +191,8 @@ use 100% of each individual CPU core. For example, consider a system with more than three cores. If you start one container **{C0}** with **-c=512** running one process, and another container -**{C1}** with **-c=1024** running two processes, this can result in the following +**{C1}** with **-c=1024** running two processes, this can result in the +following division of CPU shares: PID container CPU CPU share @@ -170,25 +200,33 @@ division of CPU shares: 101 {C1} 1 100% of CPU1 102 {C1} 2 100% of CPU2 -**--cpuset-cpus**=*num* +#### **--cpuset-cpus**=*num* CPUs in which to allow execution (0-3, 0,1) -**--cpuset-mems**=*nodes* +#### **--cpuset-mems**=*nodes* -Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems. +Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on +NUMA systems. If you have four memory nodes on your system (0-3), use `--cpuset-mems=0,1` then processes in your container will only use memory from the first two memory nodes. -**--creds**=*creds* +#### **--creds**=*creds* The [username[:password]] to use to authenticate with the registry if required. -If one or both values are not supplied, a command line prompt will appear and the -value can be entered. The password is entered without echo. +If one or both values are not supplied, a command line prompt will appear and +the value can be entered. The password is entered without echo. -**--device**=_host-device_[**:**_container-device_][**:**_permissions_] +#### **--decryption-key**=*key[:passphrase]* + +The [key[:passphrase]] to be used for decryption of images. Key can point to +keys and/or certificates. Decryption will be tried with all keys. If the key is +protected by a passphrase, it is required to be passed in the argument and +omitted otherwise. + +#### **--device**=_host-device_[**:**_container-device_][**:**_permissions_] Add a host device to the container. Optional *permissions* parameter can be used to specify device permissions, it is combination of @@ -201,9 +239,10 @@ The container will only store the major and minor numbers of the host device. Note: if the user only has access rights via a group, accessing the device from inside a rootless container will fail. The **crun**(1) runtime offers a -workaround for this by adding the option **--annotation run.oci.keep_original_groups=1**. +workaround for this by adding the option +#### **--annotation run.oci.keep_original_groups=1**. -**--disable-compression**, **-D** +#### **--disable-compression**, **-D** Don't compress filesystem layers when building the image unless it is required by the location where the image is being written. This is the default setting, @@ -212,29 +251,34 @@ registries, and images being written to local storage would only need to be decompressed again to be stored. Compression can be forced in all cases by specifying **--disable-compression=false**. -**--disable-content-trust** +#### **--disable-content-trust** This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman. This flag is a NOOP and provided solely for scripting compatibility. -**--dns**=*dns* +#### **--dns**=*dns* Set custom DNS servers -This option can be used to override the DNS configuration passed to the container. Typically this is necessary when the host DNS configuration is invalid for the container (e.g., 127.0.0.1). When this is the case the `--dns` flag is necessary for every run. +This option can be used to override the DNS configuration passed to the +container. Typically this is necessary when the host DNS configuration is +invalid for the container (e.g., 127.0.0.1). When this is the case the `--dns` +flag is necessary for every run. -The special value **none** can be specified to disable creation of /etc/resolv.conf in the container by Podman. The /etc/resolv.conf file in the image will be used without changes. +The special value **none** can be specified to disable creation of +/etc/resolv.conf in the container by Podman. The /etc/resolv.conf file in the +image will be used without changes. -**--dns-option**=*option* +#### **--dns-option**=*option* Set custom DNS options -**--dns-search**=*domain* +#### **--dns-search**=*domain* Set custom DNS search domains -**--file**, **-f**=*Containerfile* +#### **--file**, **-f**=*Containerfile* Specifies a Containerfile which contains instructions for building the image, either a local file or an **http** or **https** URL. If more than one @@ -247,11 +291,12 @@ context. If you specify `-f -`, the Containerfile contents will be read from stdin. -**--force-rm**=*true|false* +#### **--force-rm**=*true|false* -Always remove intermediate containers after a build, even if the build fails (default false). +Always remove intermediate containers after a build, even if the build fails +(default false). -**--format** +#### **--format** Control the format for the built image's manifest and configuration data. Recognized formats include *oci* (OCI image-spec v1.0, the default) and @@ -264,15 +309,15 @@ environment variable. `export BUILDAH_FORMAT=docker` Print usage statement -**--http-proxy** +#### **--http-proxy** Pass through HTTP Proxy environment variables. -**--iidfile**=*ImageIDfile* +#### **--iidfile**=*ImageIDfile* Write the image ID to the file. -**--ipc**=*how* +#### **--ipc**=*how* Sets the configuration for IPC namespaces when handling `RUN` instructions. The configured value can be "" (the empty string) or "container" to indicate @@ -281,7 +326,7 @@ that the IPC namespace in which `podman` itself is being run should be reused, or it can be the path to an IPC namespace which is already in use by another process. -**--isolation**=*type* +#### **--isolation**=*type* Controls what type of isolation is used for running processes as part of `RUN` instructions. Recognized types include *oci* (OCI-compatible runtime, the @@ -295,12 +340,16 @@ chroot(1) than container technology). Note: You can also override the default isolation type by setting the BUILDAH\_ISOLATION environment variable. `export BUILDAH_ISOLATION=oci` -**--jobs**=*number* -How many stages to run in parallel (default 1) +#### **--jobs**=*number* + +Run up to N concurrent stages in parallel. If the number of jobs is greater +than 1, stdin will be read from /dev/null. If 0 is specified, then there is +no limit in the number of jobs that run in parallel. -**--label**=*label* +#### **--label**=*label* -Add an image *label* (e.g. label=*value*) to the image metadata. Can be used multiple times. +Add an image *label* (e.g. label=*value*) to the image metadata. Can be used +multiple times. Users can set a special LABEL **io.containers.capabilities=CAP1,CAP2,CAP3** in a Containerfile that specified the list of Linux capabilities required for the @@ -312,34 +361,36 @@ capabilities is a subset of the default list. If the specified capabilities are not in the default set, Podman will print an error message and will run the container with the default capabilities. -**--layers** +#### **--layers** Cache intermediate images during the build process (Default is `true`). -Note: You can also override the default value of layers by setting the BUILDAH\_LAYERS -environment variable. `export BUILDAH_LAYERS=true` +Note: You can also override the default value of layers by setting the +BUILDAH\_LAYERS environment variable. `export BUILDAH_LAYERS=true` -**--logfile**=*filename* +#### **--logfile**=*filename* Log output which would be sent to standard output and standard error to the specified file instead of to standard output and standard error. -**--loglevel**=*number* +#### **--loglevel**=*number* Adjust the logging level up or down. Valid option values range from -2 to 3, with 3 being roughly equivalent to using the global *--debug* option, and values below 0 omitting even error messages which accompany fatal errors. -**--memory**, **-m**=*LIMIT* -Memory limit (format: <number>[<unit>], where unit = b (bytes), k (kilobytes), m (megabytes), or g (gigabytes)) +#### **--memory**, **-m**=*LIMIT* +Memory limit (format: <number>[<unit>], where unit = b (bytes), k (kilobytes), +m (megabytes), or g (gigabytes)) Allows you to constrain the memory available to a container. If the host supports swap memory, then the **-m** memory setting can be larger than physical RAM. If a limit of 0 is specified (not using **-m**), the container's memory is not limited. The actual limit may be rounded up to a multiple of the operating -system's page size (the value would be very large, that's millions of trillions). +system's page size (the value would be very large, that's millions of +trillions). -**--memory-swap**=*LIMIT* +#### **--memory-swap**=*LIMIT* A limit value equal to memory plus swap. Must be used with the **-m** (**--memory**) flag. The swap `LIMIT` should always be larger than **-m** @@ -350,24 +401,30 @@ The format of `LIMIT` is `<number>[<unit>]`. Unit can be `b` (bytes), `k` (kilobytes), `m` (megabytes), or `g` (gigabytes). If you don't specify a unit, `b` is used. Set LIMIT to `-1` to enable unlimited swap. -**--net**, **--network**=*string* +#### **--network**=*mode*, **--net** Sets the configuration for network namespaces when handling `RUN` instructions. -The configured value can be "" (the empty string) or "container" to indicate -that a new network namespace should be created, or it can be "host" to indicate -that the network namespace in which `podman` itself is being run should be -reused, or it can be the path to a network namespace which is already in use by -another process. -**--no-cache** +Valid _mode_ values are: -Do not use existing cached images for the container build. Build from the start with a new set of cached layers. +- **none**: no networking. +- **host**: use the Podman host network stack. Note: the host mode gives the +container full access to local system services such as D-bus and is therefore +considered insecure. +- **ns:**_path_: path to a network namespace to join. +- **private**: create a new namespace for the container (default). -**--os**=*string* +#### **--no-cache** -Set the OS to the provided value instead of the current operating system of the host. +Do not use existing cached images for the container build. Build from the start +with a new set of cached layers. -**--pid**=*pid* +#### **--os**=*string* + +Set the OS to the provided value instead of the current operating system of the +host. + +#### **--pid**=*pid* Sets the configuration for PID namespaces when handling `RUN` instructions. The configured value can be "" (the empty string) or "container" to indicate @@ -376,46 +433,44 @@ that the PID namespace in which `podman` itself is being run should be reused, or it can be the path to a PID namespace which is already in use by another process. -**--platform**="Linux" +#### **--platform**="Linux" This option has no effect on the build. Other container engines use this option to control the execution platform for the build (e.g., Windows, Linux) which is not required for Buildah as it supports only Linux. -**--pull** +#### **--pull** -When the flag is enabled, attempt to pull the latest image from the registries -listed in registries.conf if a local image does not exist or the image is newer -than the one in storage. Raise an error if the image is not in any listed -registry and is not present locally. +When the option is specified or set to "true", pull the image from the first +registry it is found in as listed in registries.conf. Raise an error if not +found in the registries, even if the image is present locally. -If the flag is disabled (with *--pull=false*), do not pull the image from the -registry, unless there is no local image. Raise an error if the image is not -in any registry and is not present locally. +If the option is disabled (with *--pull=false*) or not specified, pull the +image from the registry only if the image is not present locally. Raise an +error if the image is not found in the registries and is not present locally. -Defaults to *true*. +#### **--pull-always** -**--pull-always** +Pull the image from the first registry it is found in as listed in +registries.conf. Raise an error if not found in the registries, even if the +image is present locally. -Pull the image from the first registry it is found in as listed in registries.conf. -Raise an error if not found in the registries, even if the image is present locally. +#### **--pull-never** -**--pull-never** +Do not pull the image from the registry, use only the local version. Raise an +error if the image is not present locally. -Do not pull the image from the registry, use only the local version. Raise an error -if the image is not present locally. - -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output messages which indicate which instruction is being processed, and of progress when pulling images from a registry, and when writing the output image. -**--rm**=*true|false* +#### **--rm**=*true|false* Remove intermediate containers after a successful build (default true). -**--runtime**=*path* +#### **--runtime**=*path* The *path* to an alternate OCI-compatible runtime, which will be used to run commands specified by the **RUN** instruction. @@ -423,12 +478,13 @@ commands specified by the **RUN** instruction. Note: You can also override the default runtime by setting the BUILDAH\_RUNTIME environment variable. `export BUILDAH_RUNTIME=/usr/local/bin/runc` -**--security-opt**=*option* +#### **--security-opt**=*option* Security Options - `apparmor=unconfined` : Turn off apparmor confinement for the container -- `apparmor=your-profile` : Set the apparmor confinement profile for the container +- `apparmor=your-profile` : Set the apparmor confinement profile for the +container - `label=user:USER` : Set the label user for the container processes - `label=role:ROLE` : Set the label role for the container processes @@ -436,57 +492,68 @@ Security Options - `label=level:LEVEL` : Set the label level for the container processes - `label=filetype:TYPE` : Set the label file type for the container files - `label=disable` : Turn off label separation for the container +- `no-new-privileges` : Not supported - `seccomp=unconfined` : Turn off seccomp confinement for the container -- `seccomp=profile.json` : White listed syscalls seccomp Json file to be used as a seccomp filter +- `seccomp=profile.json` : White listed syscalls seccomp Json file to be used +as a seccomp filter -**--shm-size**=*size* +#### **--shm-size**=*size* -Size of `/dev/shm`. The format is `<number><unit>`. `number` must be greater than `0`. -Unit is optional and can be `b` (bytes), `k` (kilobytes), `m`(megabytes), or `g` (gigabytes). -If you omit the unit, the system uses bytes. If you omit the size entirely, the system uses `64m`. +Size of `/dev/shm`. The format is `<number><unit>`. `number` must be greater +than `0`. +Unit is optional and can be `b` (bytes), `k` (kilobytes), `m`(megabytes), or +`g` (gigabytes). If you omit the unit, the system uses bytes. If you omit the +size entirely, the system uses `64m`. -**--sign-by**=*fingerprint* +#### **--sign-by**=*fingerprint* Sign the image using a GPG key with the specified FINGERPRINT. -**--squash** +#### **--squash** -Squash all of the image's new layers into a single new layer; any preexisting layers -are not squashed. +Squash all of the image's new layers into a single new layer; any preexisting +layers are not squashed. -**--squash-all** +#### **--squash-all** -Squash all of the new image's layers (including those inherited from a base image) into a single new layer. +Squash all of the new image's layers (including those inherited from a base +image) into a single new layer. -**--tag**, **-t**=*imageName* +#### **--tag**, **-t**=*imageName* Specifies the name which will be assigned to the resulting image if the build process completes successfully. -If _imageName_ does not include a registry name, the registry name *localhost* will be prepended to the image name. +If _imageName_ does not include a registry name, the registry name *localhost* +will be prepended to the image name. -**--target**=*stageName* +#### **--target**=*stageName* -Set the target build stage to build. When building a Containerfile with multiple build stages, --target -can be used to specify an intermediate build stage by name as the final stage for the resulting image. -Commands after the target stage will be skipped. +Set the target build stage to build. When building a Containerfile with +multiple build stages, --target can be used to specify an intermediate build +stage by name as the final stage for the resulting image. Commands after the target stage will be skipped. -**--timestamp** *seconds* +#### **--timestamp** *seconds* -Set the create timestamp to seconds since epoch to allow for deterministic builds (defaults to current time). -By default, the created timestamp is changed and written into the image manifest with every commit, -causing the image's sha256 hash to be different even if the sources are exactly the same otherwise. -When --timestamp is set, the created timestamp is always set to the time specified and therefore not changed, allowing the image's sha256 to remain the same. All files committed to the layers of the image will be created with the timestamp. +Set the create timestamp to seconds since epoch to allow for deterministic +builds (defaults to current time). By default, the created timestamp is changed +and written into the image manifest with every commit, causing the image's +sha256 hash to be different even if the sources are exactly the same otherwise. +When --timestamp is set, the created timestamp is always set to the time +specified and therefore not changed, allowing the image's sha256 hash to remain the +same. All files committed to the layers of the image will be created with the +timestamp. -**--tls-verify**=*true|false* +#### **--tls-verify**=*true|false* -Require HTTPS and verify certificates when talking to container registries (defaults to true). +Require HTTPS and verify certificates when talking to container registries +(defaults to true). -**--ulimit**=*type*=*soft-limit*[:*hard-limit*] +#### **--ulimit**=*type*=*soft-limit*[:*hard-limit*] -Specifies resource limits to apply to processes launched when processing `RUN` instructions. -This option can be specified multiple times. Recognized resource types -include: +Specifies resource limits to apply to processes launched when processing `RUN` +instructions. This option can be specified multiple times. Recognized resource +types include: "core": maximum core dump size (ulimit -c) "cpu": maximum CPU time (ulimit -t) "data": maximum size of a process's data segment (ulimit -d) @@ -503,7 +570,7 @@ include: "sigpending": maximum number of pending signals (ulimit -i) "stack": maximum stack size (ulimit -s) -**--userns**=*how* +#### **--userns**=*how* Sets the configuration for user namespaces when handling `RUN` instructions. The configured value can be "" (the empty string) or "container" to indicate @@ -512,7 +579,7 @@ the user namespace in which `podman` itself is being run should be reused, or it can be the path to an user namespace which is already in use by another process. -**--userns-uid-map**=*mapping* +#### **--userns-uid-map**=*mapping* Directly specifies a UID mapping which should be used to set ownership, at the filesystem level, on the working container's contents. @@ -533,7 +600,7 @@ If none of --userns-uid-map-user, --userns-gid-map-group, or --userns-uid-map are specified, but --userns-gid-map is specified, the UID map will be set to use the same numeric values as the GID map. -**--userns-gid-map**=*mapping* +#### **--userns-gid-map**=*mapping* Directly specifies a GID mapping which should be used to set ownership, at the filesystem level, on the working container's contents. @@ -554,7 +621,7 @@ If none of --userns-uid-map-user, --userns-gid-map-group, or --userns-gid-map are specified, but --userns-uid-map is specified, the GID map will be set to use the same numeric values as the UID map. -**--userns-uid-map-user**=*user* +#### **--userns-uid-map-user**=*user* Specifies that a UID mapping which should be used to set ownership, at the filesystem level, on the working container's contents, can be found in entries @@ -565,7 +632,7 @@ If --userns-gid-map-group is specified, but --userns-uid-map-user is not specified, `podman` will assume that the specified group name is also a suitable user name to use as the default setting for this option. -**--userns-gid-map-group**=*group* +#### **--userns-gid-map-group**=*group* Specifies that a GID mapping which should be used to set ownership, at the filesystem level, on the working container's contents, can be found in entries @@ -576,7 +643,7 @@ If --userns-uid-map-user is specified, but --userns-gid-map-group is not specified, `podman` will assume that the specified user name is also a suitable group name to use as the default setting for this option. -**--uts**=*how* +#### **--uts**=*how* Sets the configuration for UTS namespaces when the handling `RUN` instructions. The configured value can be "" (the empty string) or "container" to indicate @@ -585,7 +652,7 @@ that the UTS namespace in which `podman` itself is being run should be reused, or it can be the path to a UTS namespace which is already in use by another process. -**--volume**, **-v**[=*[HOST-DIR:CONTAINER-DIR[:OPTIONS]]*] +#### **--volume**, **-v**[=*[HOST-DIR:CONTAINER-DIR[:OPTIONS]]*] Create a bind mount. If you specify, ` -v /HOST-DIR:/CONTAINER-DIR`, Podman bind mounts `/HOST-DIR` in the host to `/CONTAINER-DIR` in the Podman @@ -625,49 +692,65 @@ Only the current container can use a private volume. `Overlay Volume Mounts` - The `:O` flag tells Podman to mount the directory from the host as a temporary storage using the Overlay file system. The `RUN` command containers are allowed to modify contents within the mountpoint and are stored in the container storage in a separate directory. In Overlay FS terms the source directory will be the lower, and the container storage directory will be the upper. Modifications to the mount point are destroyed when the `RUN` command finishes executing, similar to a tmpfs mount point. + The `:O` flag tells Podman to mount the directory from the host as a +temporary storage using the Overlay file system. The `RUN` command containers +are allowed to modify contents within the mountpoint and are stored in the +container storage in a separate directory. In Overlay FS terms the source +directory will be the lower, and the container storage directory will be the +upper. Modifications to the mount point are destroyed when the `RUN` command +finishes executing, similar to a tmpfs mount point. - Any subsequent execution of `RUN` commands sees the original source directory content, any changes from previous RUN commands no longer exists. + Any subsequent execution of `RUN` commands sees the original source directory +content, any changes from previous RUN commands no longer exists. - One use case of the `overlay` mount is sharing the package cache from the host into the container to allow speeding up builds. + One use case of the `overlay` mount is sharing the package cache from the +host into the container to allow speeding up builds. Note: - Overlay mounts are not currently supported in rootless mode. - - The `O` flag is not allowed to be specified with the `Z` or `z` flags. Content mounted into the container is labeled with the private label. - On SELinux systems, labels in the source directory needs to be readable by the container label. If not, SELinux container separation must be disabled for the container to work. - - Modification of the directory volume mounted into the container with an overlay mount can cause unexpected failures. It is recommended that you do not modify the directory until the container finishes running. + - The `O` flag is not allowed to be specified with the `Z` or `z` flags. +Content mounted into the container is labeled with the private label. + On SELinux systems, labels in the source directory needs to be readable +by the container label. If not, SELinux container separation must be disabled +for the container to work. + - Modification of the directory volume mounted into the container with an +overlay mount can cause unexpected failures. It is recommended that you do not +modify the directory until the container finishes running. By default bind mounted volumes are `private`. That means any mounts done -inside container will not be visible on the host and vice versa. This behavior can -be changed by specifying a volume mount propagation property. - -When the mount propagation policy is set to `shared`, any mounts completed inside -the container on that volume will be visible to both the host and container. When -the mount propagation policy is set to `slave`, one way mount propagation is enabled -and any mounts completed on the host for that volume will be visible only inside of the container. -To control the mount propagation property of volume use the `:[r]shared`, -`:[r]slave` or `:[r]private` propagation flag. The propagation property can -be specified only for bind mounted volumes and not for internal volumes or -named volumes. For mount propagation to work on the source mount point (mount point -where source dir is mounted on) has to have the right propagation properties. For -shared volumes, the source mount point has to be shared. And for slave volumes, -the source mount has to be either shared or slave. <sup>[[1]](#Footnote1)</sup> +inside containers will not be visible on the host and vice versa. This behavior +can be changed by specifying a volume mount propagation property. + +When the mount propagation policy is set to `shared`, any mounts completed +inside the container on that volume will be visible to both the host and +container. When the mount propagation policy is set to `slave`, one way mount +propagation is enabled and any mounts completed on the host for that volume will +be visible only inside of the container. To control the mount propagation +property of volume use the `:[r]shared`, `:[r]slave` or `:[r]private` +propagation flag. The propagation property can be specified only for bind mounted +volumes and not for internal volumes or named volumes. For mount propagation to +work on the source mount point (mount point where source dir is mounted on) has +to have the right propagation properties. For shared volumes, the source mount +point has to be shared. And for slave volumes, the source mount has to be either +shared or slave. <sup>[[1]](#Footnote1)</sup> Use `df <source-dir>` to determine the source mount and then use `findmnt -o TARGET,PROPAGATION <source-mount-dir>` to determine propagation -properties of source mount, if `findmnt` utility is not available, the source mount point -can be determined by looking at the mount entry in `/proc/self/mountinfo`. Look -at `optional fields` and see if any propagation properties are specified. -`shared:X` means the mount is `shared`, `master:X` means the mount is `slave` and if -nothing is there that means the mount is `private`. <sup>[[1]](#Footnote1)</sup> +properties of source mount, if `findmnt` utility is not available, the source +mount point can be determined by looking at the mount entry in +`/proc/self/mountinfo`. Look at `optional fields` and see if any propagation +properties are specified. +`shared:X` means the mount is `shared`, `master:X` means the mount is `slave` +and if nothing is there that means the mount is `private`. <sup>[[1]](#Footnote1)</sup> To change propagation properties of a mount point use the `mount` command. For example, to bind mount the source directory `/foo` do `mount --bind /foo /foo` and `mount --make-private --make-shared /foo`. This -will convert /foo into a `shared` mount point. The propagation properties of the source -mount can be changed directly. For instance if `/` is the source mount for -`/foo`, then use `mount --make-shared /` to convert `/` into a `shared` mount. +will convert /foo into a `shared` mount point. The propagation properties of +the source mount can be changed directly. For instance if `/` is the source +mount for `/foo`, then use `mount --make-shared /` to convert `/` into a +`shared` mount. ## EXAMPLES @@ -715,11 +798,18 @@ $ podman build --no-cache --rm=false -t imageName . ### Building an image using a URL, Git repo, or archive - The build context directory can be specified as a URL to a Containerfile, a Git repository, or URL to an archive. If the URL is a Containerfile, it is downloaded to a temporary location and used as the context. When a Git repository is set as the URL, the repository is cloned locally to a temporary location and then used as the context. Lastly, if the URL is an archive, it is downloaded to a temporary location and extracted before being used as the context. + The build context directory can be specified as a URL to a Containerfile, a +Git repository, or URL to an archive. If the URL is a Containerfile, it is +downloaded to a temporary location and used as the context. When a Git +repository is set as the URL, the repository is cloned locally to a temporary +location and then used as the context. Lastly, if the URL is an archive, it is +downloaded to a temporary location and extracted before being used as the +context. #### Building an image using a URL to a Containerfile - Podman will download the Containerfile to a temporary location and then use it as the build context. + Podman will download the Containerfile to a temporary location and then use +it as the build context. ``` $ podman build https://10.10.10.1/podman/Containerfile @@ -727,7 +817,9 @@ $ podman build https://10.10.10.1/podman/Containerfile #### Building an image using a Git repository - Podman will clone the specified GitHub repository to a temporary location and use it as the context. The Containerfile at the root of the repository will be used and it only works if the GitHub repository is a dedicated repository. + Podman will clone the specified GitHub repository to a temporary location and +use it as the context. The Containerfile at the root of the repository will be +used and it only works if the GitHub repository is a dedicated repository. ``` $ podman build git://github.com/scollier/purpletest @@ -735,13 +827,18 @@ $ podman build git://github.com/scollier/purpletest #### Building an image using a URL to an archive - Podman will fetch the archive file, decompress it, and use its contents as the build context. The Containerfile at the root of the archive and the rest of the archive will get used as the context of the build. If you pass `-f PATH/Containerfile` option as well, the system will look for that file inside the contents of the archive. + Podman will fetch the archive file, decompress it, and use its contents as the +build context. The Containerfile at the root of the archive and the rest of the +archive will get used as the context of the build. If you pass +`-f PATH/Containerfile` option as well, the system will look for that file +inside the contents of the archive. ``` $ podman build -f dev/Containerfile https://10.10.10.1/podman/context.tar.gz ``` - Note: supported compression formats are 'xz', 'bzip2', 'gzip' and 'identity' (no compression). + Note: supported compression formats are 'xz', 'bzip2', 'gzip' and 'identity' +(no compression). ## Files @@ -769,7 +866,8 @@ src ``` `*/*.c` -Excludes files and directories whose names ends with .c in any top level subdirectory. For example, the source file include/rootless.c. +Excludes files and directories whose names ends with .c in any top level +subdirectory. For example, the source file include/rootless.c. `**/output*` Excludes files and directories starting with `output` from any directory. @@ -787,21 +885,29 @@ mechanism: Exclude all doc files except Help.doc from the image. -This functionality is compatible with the handling of .dockerignore files described here: +This functionality is compatible with the handling of .dockerignore files +described here: https://docs.docker.com/engine/reference/builder/#dockerignore-file **registries.conf** (`/etc/containers/registries.conf`) -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. +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. ## Troubleshooting ### lastlog sparse file -If you are using a useradd command within a Containerfile with a large UID/GID, it will create a large sparse file `/var/log/lastlog`. This can cause the build to hang forever. Go language does not support sparse files correctly, which can lead to some huge files being created in your container image. +If you are using a useradd command within a Containerfile with a large UID/GID, +it will create a large sparse file `/var/log/lastlog`. This can cause the +build to hang forever. Go language does not support sparse files correctly, +which can lead to some huge files being created in your container image. -If you are using `useradd` within your build script, you should pass the `--no-log-init or -l` option to the `useradd` command. This option tells useradd to stop creating the lastlog file. +If you are using `useradd` within your build script, you should pass the +`--no-log-init or -l` option to the `useradd` command. This option tells +useradd to stop creating the lastlog file. ## SEE ALSO podman(1), buildah(1), containers-registries.conf(5), crun(8), runc(8), useradd(8), podman-ps(1), podman-rm(1) @@ -814,4 +920,9 @@ May 2018, Minor revisions added by Joe Doss <joe@solidadmin.com> December 2017, Originally compiled by Tom Sweeney <tsweeney@redhat.com> ## FOOTNOTES -<a name="Footnote1">1</a>: The Podman project is committed to inclusivity, a core value of open source. The `master` and `slave` mount propagation terminology used here is problematic and divisive, and should be changed. However, these terms are currently used within the Linux kernel and must be used as-is at this time. When the kernel maintainers rectify this usage, Podman will follow suit immediately. +<a name="Footnote1">1</a>: The Podman project is committed to inclusivity, a +core value of open source. The `master` and `slave` mount propagation +terminology used here is problematic and divisive, and should be changed. +However, these terms are currently used within the Linux kernel and must be +used as-is at this time. When the kernel maintainers rectify this usage, +Podman will follow suit immediately. diff --git a/docs/source/markdown/podman-commit.1.md b/docs/source/markdown/podman-commit.1.md index 13e46a899..7485e9bd9 100644 --- a/docs/source/markdown/podman-commit.1.md +++ b/docs/source/markdown/podman-commit.1.md @@ -22,39 +22,39 @@ If *image* is not provided, the values for the `REPOSITORY` and `TAG` values of ## OPTIONS -**--author**, **-a**=*author* +#### **--author**, **-a**=*author* Set the author for the committed image -**--change**, **-c**=*instruction* +#### **--change**, **-c**=*instruction* Apply the following possible instructions to the created image: **CMD** | **ENTRYPOINT** | **ENV** | **EXPOSE** | **LABEL** | **ONBUILD** | **STOPSIGNAL** | **USER** | **VOLUME** | **WORKDIR** Can be set multiple times -**--format**, **-f**=*format* +#### **--format**, **-f**=*format* Set the format of the image manifest and metadata. The currently supported formats are _oci_ and _docker_. If not specifically set, the default format used is _oci_. -**--iidfile**=*ImageIDfile* +#### **--iidfile**=*ImageIDfile* Write the image ID to the file. -**--include-volumes** +#### **--include-volumes** Include in the committed image any volumes added to the container by the `--volume` or `--mount` options to the `podman create` and `podman run` commands. -**--message**, **-m**=*message* +#### **--message**, **-m**=*message* Set commit message for committed image. The message field is not supported in _oci_ format. -**--pause**, **-p** +#### **--pause**, **-p** Pause the container when creating an image -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output diff --git a/docs/source/markdown/podman-completion.1.md b/docs/source/markdown/podman-completion.1.md new file mode 100644 index 000000000..50b0b6145 --- /dev/null +++ b/docs/source/markdown/podman-completion.1.md @@ -0,0 +1,56 @@ +% podman-completion(1) + +## NAME +podman\-completion - Generate shell completion scripts + +## SYNOPSIS +**podman completion** [*options*] *bash*|*zsh*|*fish* + +## DESCRIPTION +The completion command allows you to generate shell completion scripts. Supported shells are **bash**, **zsh** and **fish**. + +These script are used by the shell to provide suggestions and complete commands when you are typing the command and press [TAB]. + +Usually these scripts are automatically installed via the package manager. + +## OPTIONS +#### **--file**, **-f** + +Write the generated output to file. + +#### **--no-desc** + +Do not provide description in the completions. + +## Installation + +### BASH +Make sure you have `bash-completion` installed on your system. + +To load the completion script into your current session run: +`source <(podman completion bash)` + +To make it available in all your bash sessions run: +`podman completion bash -f /etc/bash_completion.d/podman` + + +### ZSH +If shell completion is not already enabled in your environment you will need to enable it. You can execute the following once: +`echo "autoload -U compinit; compinit" >> ~/.zshrc` + +To make it available in all your zsh sessions run: +`podman completion zsh -f "${fpath[1]}/_podman"` + +Once you reload the shell the autocompletion should be working. + + +### FISH +To load the completion script into your current session run: +`podman completion fish | source` + +To make it available in all your fish sessions run: +`podman completion fish -f ~/.config/fish/completions/podman.fish` + + +## SEE ALSO +[podman(1)](podman.1.md) diff --git a/docs/source/markdown/podman-container-checkpoint.1.md b/docs/source/markdown/podman-container-checkpoint.1.md index 1bac477c8..bfda782c5 100644 --- a/docs/source/markdown/podman-container-checkpoint.1.md +++ b/docs/source/markdown/podman-container-checkpoint.1.md @@ -10,42 +10,42 @@ podman\-container\-checkpoint - Checkpoints one or more running containers Checkpoints all the processes in one or more containers. You may use container IDs or names as input. ## OPTIONS -**--keep**, **-k** +#### **--keep**, **-k** Keep all temporary log and statistics files created by CRIU during checkpointing. These files are not deleted if checkpointing fails for further debugging. If checkpointing succeeds these files are theoretically not needed, but if these files are needed Podman can keep the files for further analysis. -**--all**, **-a** +#### **--all**, **-a** Checkpoint all running containers. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, checkpoint the last created container. The latest option is not supported on the remote client. -**--leave-running**, **-R** +#### **--leave-running**, **-R** Leave the container running after checkpointing instead of stopping it. -**--tcp-established** +#### **--tcp-established** Checkpoint a container with established TCP connections. If the checkpoint image contains established TCP connections, this options is required during restore. Defaults to not checkpointing containers with established TCP connections. -**--export**, **-e** +#### **--export**, **-e** Export the checkpoint to a tar.gz file. The exported checkpoint can be used to import the container on another system and thus enabling container live migration. This checkpoint archive also includes all changes to the container's root file-system, if not explicitly disabled using **--ignore-rootfs** -**--ignore-rootfs** +#### **--ignore-rootfs** This only works in combination with **--export, -e**. If a checkpoint is exported to a tar.gz file it is possible with the help of **--ignore-rootfs** diff --git a/docs/source/markdown/podman-container-cleanup.1.md b/docs/source/markdown/podman-container-cleanup.1.md index a200c2c36..eabb462e8 100644 --- a/docs/source/markdown/podman-container-cleanup.1.md +++ b/docs/source/markdown/podman-container-cleanup.1.md @@ -12,28 +12,28 @@ Sometimes container's mount points and network stacks can remain if the podman c ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Cleanup all containers. -**--exec**=_session_ +#### **--exec**=_session_ Clean up an exec session for a single container. Can only be specified if a single container is being cleaned up (conflicts with **--all** as such). If **--rm** is not specified, temporary files for the exec session will be cleaned up; if it is, the exec session will be removed from the container. Conflicts with **--rmi** as the container is not being cleaned up so the image cannot be removed. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--rm** +#### **--rm** After cleanup, remove the container entirely. -**--rmi** +#### **--rmi** After cleanup, remove the image entirely. diff --git a/docs/source/markdown/podman-container-exists.1.md b/docs/source/markdown/podman-container-exists.1.md index d81a38515..381d968ab 100644 --- a/docs/source/markdown/podman-container-exists.1.md +++ b/docs/source/markdown/podman-container-exists.1.md @@ -14,7 +14,7 @@ was an issue accessing the local storage. ## OPTIONS -**--external**=*true|false* +#### **--external**=*true|false* Check for external containers as well as Podman containers. These external containers are generally created via other container technology such as Buildah or CRI-O. **-h**, **--help** diff --git a/docs/source/markdown/podman-container-prune.1.md b/docs/source/markdown/podman-container-prune.1.md index d56a1e7f5..4b4effb0b 100644 --- a/docs/source/markdown/podman-container-prune.1.md +++ b/docs/source/markdown/podman-container-prune.1.md @@ -11,11 +11,11 @@ podman-container-prune - Remove all stopped containers from local storage ## OPTIONS -**--filter**=*filters* +#### **--filter**=*filters* Provide filter values. -**--force**, **-f** +#### **--force**, **-f** Do not provide an interactive prompt for container removal. diff --git a/docs/source/markdown/podman-container-restore.1.md b/docs/source/markdown/podman-container-restore.1.md index a7b0f199b..494e7db1e 100644 --- a/docs/source/markdown/podman-container-restore.1.md +++ b/docs/source/markdown/podman-container-restore.1.md @@ -10,7 +10,7 @@ podman\-container\-restore - Restores one or more containers from a checkpoint Restores a container from a checkpoint. You may use container IDs or names as input. ## OPTIONS -**--keep**, **-k** +#### **--keep**, **-k** Keep all temporary log and statistics files created by CRIU during checkpointing as well as restoring. These files are not deleted if restoring @@ -24,17 +24,17 @@ processes in the checkpointed container. Without the **-k**, **--keep** option the checkpoint will be consumed and cannot be used again. -**--all**, **-a** +#### **--all**, **-a** Restore all checkpointed containers. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, restore the last created container. The latest option is not supported on the remote client. -**--tcp-established** +#### **--tcp-established** Restore a container with established TCP connections. If the checkpoint image contains established TCP connections, this option is required during restore. @@ -42,13 +42,13 @@ If the checkpoint image does not contain established TCP connections this option is ignored. Defaults to not restoring containers with established TCP connections. -**--import**, **-i** +#### **--import**, **-i** Import a checkpoint tar.gz file, which was exported by Podman. This can be used to import a checkpointed container from another host. Do not specify a *container* argument when using this option. -**--name**, **-n** +#### **--name**, **-n** This is only available in combination with **--import, -i**. If a container is restored from a checkpoint tar.gz file it is possible to rename it with **--name, -n**. This @@ -60,14 +60,14 @@ address to the container it was using before checkpointing as each IP address ca be used once and the restored container will have another IP address. This also means that **--name, -n** cannot be used in combination with **--tcp-established**. -**--ignore-rootfs** +#### **--ignore-rootfs** This is only available in combination with **--import, -i**. If a container is restored from a checkpoint tar.gz file it is possible that it also contains all root file-system changes. With **--ignore-rootfs** it is possible to explicitly disable applying these root file-system changes to the restored container. -**--ignore-static-ip** +#### **--ignore-static-ip** If the container was started with **--ip** the restored container also tries to use that IP address and restore fails if that IP address is already in use. This can happen, if @@ -76,7 +76,7 @@ a container is restored multiple times from an exported checkpoint with **--name Using **--ignore-static-ip** tells Podman to ignore the IP address if it was configured with **--ip** during container creation. -**--ignore-static-mac** +#### **--ignore-static-mac** If the container was started with **--mac-address** the restored container also tries to use that MAC address and restore fails if that MAC address is already diff --git a/docs/source/markdown/podman-container-runlabel.1.md b/docs/source/markdown/podman-container-runlabel.1.md index 676ad12d0..54d675705 100644 --- a/docs/source/markdown/podman-container-runlabel.1.md +++ b/docs/source/markdown/podman-container-runlabel.1.md @@ -41,7 +41,7 @@ is used. Any additional arguments will be appended to the command. ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -49,39 +49,39 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--display** +#### **--display** Display the label's value of the image having populated its environment variables. The runlabel command will not execute if --display is specified. -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--creds**=*[username[:password]]* +#### **--creds**=*[username[:password]]* The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--name**, **-n**=*name* +#### **--name**, **-n**=*name* Use this name for creating content for the container. NAME will default to the IMAGENAME if it is not specified. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output information when pulling images -**--replace** +#### **--replace** If a container exists of the default or given name, as needed it will be stopped, deleted and a new container will be created from this image. -**--tls-verify** +#### **--tls-verify** Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, diff --git a/docs/source/markdown/podman-container.1.md b/docs/source/markdown/podman-container.1.md index 0a6ceea33..9da5db601 100644 --- a/docs/source/markdown/podman-container.1.md +++ b/docs/source/markdown/podman-container.1.md @@ -32,6 +32,7 @@ The container command allows you to manage containers | pause | [podman-pause(1)](podman-pause.1.md) | Pause one or more containers. | | port | [podman-port(1)](podman-port.1.md) | List port mappings for the container. | | prune | [podman-container-prune(1)](podman-container-prune.1.md)| Remove all stopped containers from local storage. | +| ps | [podman-ps(1)](podman-ps.1.md) | Prints out information about containers. | | restart | [podman-restart(1)](podman-restart.1.md) | Restart one or more containers. | | restore | [podman-container-restore(1)](podman-container-restore.1.md) | Restores one or more containers from a checkpoint. | | rm | [podman-rm(1)](podman-rm.1.md) | Remove one or more containers. | diff --git a/docs/source/markdown/podman-cp.1.md b/docs/source/markdown/podman-cp.1.md index 0f54b2e8b..8f63c00ee 100644 --- a/docs/source/markdown/podman-cp.1.md +++ b/docs/source/markdown/podman-cp.1.md @@ -59,11 +59,11 @@ If you use a : in a local machine path, you must be explicit with a relative or ## OPTIONS -**--extract** +#### **--extract** Extract the tar file into the destination directory. If the destination directory is not provided, extract the tar file into the root directory. -**--pause** +#### **--pause** Pause the container while copying into it to avoid potential security issues around symlinks. Defaults to *true*. On rootless containers with cgroups V1, defaults to false. diff --git a/docs/source/markdown/podman-create.1.md b/docs/source/markdown/podman-create.1.md index c7e00f594..eb73609d4 100644 --- a/docs/source/markdown/podman-create.1.md +++ b/docs/source/markdown/podman-create.1.md @@ -18,20 +18,24 @@ any point. The initial status of the container created with **podman create** is 'created'. +Default settings for flags are defined in `containers.conf`. Most settings for +remote connections use the server's containers.conf, except when documented in +man pages. + ## OPTIONS -**--add-host**=*host* +#### **--add-host**=*host* Add a custom host-to-IP mapping (host:ip) Add a line to /etc/hosts. The format is hostname:ip. The **--add-host** option can be set multiple times. -**--annotation**=*key=value* +#### **--annotation**=*key=value* Add an annotation to the container. The format is key=value. The **--annotation** option can be set multiple times. -**--attach**, **-a**=*location* +#### **--attach**, **-a**=*location* Attach to STDIN, STDOUT or STDERR. @@ -42,30 +46,30 @@ error. It can even pretend to be a TTY (this is what most commandline executables expect) and pass along signals. The **-a** option can be set for each of stdin, stdout, and stderr. -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--blkio-weight**=*weight* +#### **--blkio-weight**=*weight* Block IO weight (relative weight) accepts a weight value between 10 and 1000. -**--blkio-weight-device**=*weight* +#### **--blkio-weight-device**=*weight* Block IO weight (relative device weight, format: `DEVICE_NAME:WEIGHT`). -**--cap-add**=*capability* +#### **--cap-add**=*capability* Add Linux capabilities -**--cap-drop**=*capability* +#### **--cap-drop**=*capability* Drop Linux capabilities -**--cgroupns**=*mode* +#### **--cgroupns**=*mode* Set the cgroup namespace mode for the container. **host**: use the host's cgroup namespace inside the container. @@ -75,7 +79,7 @@ Set the cgroup namespace mode for the container. If the host uses cgroups v1, the default is set to **host**. On cgroups v2 the default is **private**. -**--cgroups**=*mode* +#### **--cgroups**=*mode* Determines whether the container will create CGroups. Valid values are *enabled*, *disabled*, *no-conmon*, *split*, which the default being *enabled*. @@ -85,23 +89,23 @@ The *disabled* option will force the container to not create CGroups, and thus c The *no-conmon* option disables a new CGroup only for the conmon process. The *split* option splits the current cgroup in two sub-cgroups: one for conmon and one for the container payload. It is not possible to set *--cgroup-parent* with *split*. -**--cgroup-parent**=*path* +#### **--cgroup-parent**=*path* Path to cgroups under which the cgroup for the container will be created. If the path is not absolute, the path is considered to be relative to the cgroups path of the init process. Cgroups will be created if they do not already exist. -**--cgroup-conf**=*KEY=VALUE* +#### **--cgroup-conf**=*KEY=VALUE* When running on cgroup v2, specify the cgroup file to write to and its value. For example **--cgroup-conf=memory.high=1073741824** sets the memory.high limit to 1GB. -**--cidfile**=*id* +#### **--cidfile**=*id* Write the container ID to the file -**--conmon-pidfile**=*path* +#### **--conmon-pidfile**=*path* Write the pid of the `conmon` process to a file. `conmon` runs in a separate process than Podman, so this is necessary when using systemd to restart Podman containers. -**--cpu-period**=*limit* +#### **--cpu-period**=*limit* Set the CPU period for the Completely Fair Scheduler (CFS), which is a duration in microseconds. Once the container's CPU quota is used up, it will @@ -112,7 +116,7 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-quota**=*limit* +#### **--cpu-quota**=*limit* Limit the CPU Completely Fair Scheduler (CFS) quota. @@ -125,13 +129,13 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-rt-period**=*microseconds* +#### **--cpu-rt-period**=*microseconds* Limit the CPU real-time period in microseconds Limit the container's Real Time CPU usage. This flag tell the kernel to restrict the container's Real Time CPU usage to the period you specify. -**--cpu-rt-runtime**=*microseconds* +#### **--cpu-rt-runtime**=*microseconds* Limit the CPU real-time runtime in microseconds @@ -140,7 +144,7 @@ Period of 1,000,000us and Runtime of 950,000us means that this container could c The sum of all runtimes across containers cannot exceed the amount allotted to the parent cgroup. -**--cpu-shares**=*shares* +#### **--cpu-shares**=*shares* CPU shares (relative weight) @@ -177,21 +181,21 @@ PID container CPU CPU share 101 {C1} 1 100% of CPU1 102 {C1} 2 100% of CPU2 -**--cpus**=*number* +#### **--cpus**=*number* Number of CPUs. The default is *0.0* which means no limit. This is shorthand for **--cpu-period** and **--cpu-quota**, so you may only set either -**--cpus** or **--cpu-period** and **--cpu-quota**. +#### **--cpus** or **--cpu-period** and **--cpu-quota**. On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpuset-cpus**=*cpus* +#### **--cpuset-cpus**=*cpus* CPUs in which to allow execution (0-3, 0,1) -**--cpuset-mems**=*nodes* +#### **--cpuset-mems**=*nodes* Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems. @@ -199,7 +203,7 @@ If you have four memory nodes on your system (0-3), use `--cpuset-mems=0,1` then processes in your container will only use memory from the first two memory nodes. -**--device**=_host-device_[**:**_container-device_][**:**_permissions_] +#### **--device**=_host-device_[**:**_container-device_][**:**_permissions_] Add a host device to the container. Optional *permissions* parameter can be used to specify device permissions, it is combination of @@ -218,36 +222,36 @@ Podman may load kernel modules required for using the specified device. The devices that podman will load modules when necessary are: /dev/fuse. -**--device-cgroup-rule**="type major:minor mode" +#### **--device-cgroup-rule**="type major:minor mode" Add a rule to the cgroup allowed devices list. The rule is expected to be in the format specified in the Linux kernel documentation (Documentation/cgroup-v1/devices.txt): - type: a (all), c (char), or b (block); - major and minor: either a number, or * for all; - mode: a composition of r (read), w (write), and m (mknod(2)). -**--device-read-bps**=*path* +#### **--device-read-bps**=*path* Limit read rate (bytes per second) from a device (e.g. --device-read-bps=/dev/sda:1mb) -**--device-read-iops**=*path* +#### **--device-read-iops**=*path* Limit read rate (IO per second) from a device (e.g. --device-read-iops=/dev/sda:1000) -**--device-write-bps**=*path* +#### **--device-write-bps**=*path* Limit write rate (bytes per second) to a device (e.g. --device-write-bps=/dev/sda:1mb) -**--device-write-iops**=*path* +#### **--device-write-iops**=*path* Limit write rate (IO per second) to a device (e.g. --device-write-iops=/dev/sda:1000) -**--disable-content-trust** +#### **--disable-content-trust** This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman. This flag is a NOOP and provided solely for scripting compatibility. -**--dns**=*dns* +#### **--dns**=*dns* Set custom DNS servers. Invalid if using **--dns** and **--network** that is set to 'none' or 'container:<name|id>'. @@ -259,15 +263,15 @@ is the case the **--dns** flags is necessary for every run. The special value **none** can be specified to disable creation of **/etc/resolv.conf** in the container by Podman. The **/etc/resolv.conf** file in the image will be used without changes. -**--dns-opt**=*option* +#### **--dns-opt**=*option* Set custom DNS options. Invalid if using **--dns-opt** and **--network** that is set to 'none' or 'container:<name|id>'. -**--dns-search**=*domain* +#### **--dns-search**=*domain* Set custom DNS search domains. Invalid if using **--dns-search** and **--network** that is set to 'none' or 'container:<name|id>'. (Use --dns-search=. if you don't wish to set the search domain) -**--entrypoint**=*"command"* | *'["command", "arg1", ...]'* +#### **--entrypoint**=*"command"* | *'["command", "arg1", ...]'* Overwrite the default ENTRYPOINT of the image @@ -284,7 +288,7 @@ ENTRYPOINT. You need to specify multi option commands in the form of a json string. -**--env**, **-e**=*env* +#### **--env**, **-e**=*env* Set environment variables @@ -292,30 +296,30 @@ This option allows arbitrary environment variables that are available for the pr See [**Environment**](#environment) note below for precedence and examples. -**--env-host**=*true|false* +#### **--env-host**=*true|false* Use host environment inside of the container. See **Environment** note below for precedence. (Not available for remote commands) -**--env-file**=*file* +#### **--env-file**=*file* Read in a line delimited file of environment variables. See **Environment** note below for precedence. -**--expose**=*port* +#### **--expose**=*port* Expose a port, or a range of ports (e.g. --expose=3300-3310) to set up port redirection on the host system. -**--gidmap**=*container_gid:host_gid:amount* +#### **--gidmap**=*container_gid:host_gid:amount* GID map for the user namespace. Using this flag will run the container with user namespace enabled. It conflicts with the `--userns` and `--subgidname` flags. The following example maps uids 0-2000 in the container to the uids 30000-31999 on the host and gids 0-2000 in the container to the gids 30000-31999 on the host. `--gidmap=0:30000:2000` -**--group-add**=*group* +#### **--group-add**=*group* Add additional groups to run as -**--health-cmd**=*"command"* | *'["command", "arg1", ...]'* +#### **--health-cmd**=*"command"* | *'["command", "arg1", ...]'* Set or alter a healthcheck command for a container. The command is a command to be executed inside your container that determines your container health. The command is required for other healthcheck options @@ -324,35 +328,35 @@ to be applied. A value of `none` disables existing healthchecks. Multiple options can be passed in the form of a JSON array; otherwise, the command will be interpreted as an argument to `/bin/sh -c`. -**--health-interval**=*interval* +#### **--health-interval**=*interval* Set an interval for the healthchecks (a value of `disable` results in no automatic timer setup) (default "30s") -**--health-retries**=*retries* +#### **--health-retries**=*retries* The number of retries allowed before a healthcheck is considered to be unhealthy. The default value is `3`. -**--health-start-period**=*period* +#### **--health-start-period**=*period* The initialization time needed for a container to bootstrap. The value can be expressed in time format like `2m3s`. The default value is `0s` -**--health-timeout**=*timeout* +#### **--health-timeout**=*timeout* The maximum time allowed to complete the healthcheck before an interval is considered failed. Like start-period, the value can be expressed in a time format such as `1m22s`. The default value is `30s`. -**-h**, **--hostname**=*name* +#### **--hostname**=*name*, **-h** Container host name -Sets the container host name that is available inside the container. Can only be used with a private UTS namespace `--uts=private` (default). If `--pod` is specified and the pod shares the UTS namespace (default) the pods hostname will be used. +Sets the container host name that is available inside the container. Can only be used with a private UTS namespace `--uts=private` (default). If `--pod` is specified and the pod shares the UTS namespace (default) the pod's hostname will be used. -**--help** +#### **--help** Print usage statement -**--http-proxy**=*true|false* +#### **--http-proxy**=*true|false* By default proxy environment variables are passed into the container if set for the Podman process. This can be disabled by setting the `--http-proxy` @@ -372,7 +376,7 @@ container: Defaults to `true` -**--image-volume**, **builtin-volume**=*bind|tmpfs|ignore* +#### **--image-volume**, **builtin-volume**=*bind|tmpfs|ignore* Tells Podman how to handle the builtin image volumes. Default is **bind**. @@ -381,37 +385,37 @@ Tells Podman how to handle the builtin image volumes. Default is **bind**. content that disappears when the container is stopped. - **ignore**: All volumes are just ignored and no action is taken. -**--init** +#### **--init** Run an init inside the container that forwards signals and reaps processes. -**--init-path**=*path* +#### **--init-path**=*path* Path to the container-init binary. -**--interactive**, **-i**=*true|false* +#### **--interactive**, **-i**=*true|false* Keep STDIN open even if not attached. The default is *false*. -**--ip6**=*ip* +#### **--ip6**=*ip* Not implemented -**--ip**=*ip* +#### **--ip**=*ip* Specify a static IP address for the container, for example **10.88.64.128**. This option can only be used if the container is joined to only a single network - i.e., `--network=_network-name_` is used at most once - and if the container is not joining another container's network namespace via `--network=container:_id_`. The address must be within the CNI network's IP address pool (default **10.88.0.0/16**). -**--ipc**=*ipc* +#### **--ipc**=*ipc* Default is to create a private IPC namespace (POSIX SysV IPC) for the container 'container:<name|id>': reuses another container shared memory, semaphores and message queues 'host': use the host shared memory,semaphores and message queues inside the container. Note: the host mode gives the container full access to local shared memory and is therefore considered insecure. 'ns:<path>' path to an IPC namespace to join. -**--kernel-memory**=*number[unit]* +#### **--kernel-memory**=*number[unit]* Kernel memory limit (format: `<number>[<unit>]`, where unit = b (bytes), k (kilobytes), m (megabytes), or g (gigabytes)) @@ -421,23 +425,23 @@ is not limited. If you specify a limit, it may be rounded up to a multiple of the operating system's page size and the value can be very large, millions of trillions. -**--label**, **-l**=*label* +#### **--label**, **-l**=*label* Add metadata to a container (e.g., --label com.example.key=value) -**--label-file**=*file* +#### **--label-file**=*file* Read in a line delimited file of labels -**--link-local-ip**=*ip* +#### **--link-local-ip**=*ip* Not implemented -**--log-driver**="*k8s-file*" +#### **--log-driver**="*k8s-file*" Logging driver for the container. Currently available options are *k8s-file*, *journald*, and *none*, with *json-file* aliased to *k8s-file* for scripting compatibility. -**--log-opt**=*name*=*value* +#### **--log-opt**=*name*=*value* Set custom logging configuration. The following *name*s are supported: @@ -460,7 +464,7 @@ It supports the same keys as `podman inspect --format`. It is currently supported only by the journald log driver. -**--mac-address**=*address* +#### **--mac-address**=*address* Container MAC address (e.g. 92:d0:c6:0a:29:33) @@ -468,7 +472,7 @@ Remember that the MAC address in an Ethernet network must be unique. The IPv6 link-local address will be based on the device's MAC address according to RFC4862. -**--memory**, **-m**=*limit* +#### **--memory**, **-m**=*limit* Memory limit (format: <number>[<unit>], where unit = b (bytes), k (kilobytes), m (megabytes), or g (gigabytes)) @@ -478,7 +482,7 @@ RAM. If a limit of 0 is specified (not using **-m**), the container's memory is not limited. The actual limit may be rounded up to a multiple of the operating system's page size (the value would be very large, that's millions of trillions). -**--memory-reservation**=*limit* +#### **--memory-reservation**=*limit* Memory soft limit (format: <number>[<unit>], where unit = b (bytes), k (kilobytes), m (megabytes), or g (gigabytes)) @@ -488,7 +492,7 @@ reservation. So you should always set the value below **--memory**, otherwise th hard limit will take precedence. By default, memory reservation will be the same as memory limit. -**--memory-swap**=*limit* +#### **--memory-swap**=*limit* A limit value equal to memory plus swap. Must be used with the **-m** (**--memory**) flag. The swap `LIMIT` should always be larger than **-m** @@ -499,15 +503,15 @@ The format of `LIMIT` is `<number>[<unit>]`. Unit can be `b` (bytes), `k` (kilobytes), `m` (megabytes), or `g` (gigabytes). If you don't specify a unit, `b` is used. Set LIMIT to `-1` to enable unlimited swap. -**--memory-swappiness**=*number* +#### **--memory-swappiness**=*number* Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100. -**--mount**=*type=TYPE,TYPE-SPECIFIC-OPTION[,...]* +#### **--mount**=*type=TYPE,TYPE-SPECIFIC-OPTION[,...]* Attach a filesystem mount to the container -Current supported mount TYPES are `bind`, `volume`, `tmpfs` and `devpts`. <sup>[[1]](#Footnote1)</sup> +Current supported mount TYPEs are **bind**, **volume**, **image**, **tmpfs** and **devpts**. <sup>[[1]](#Footnote1)</sup> e.g. @@ -519,35 +523,48 @@ Current supported mount TYPES are `bind`, `volume`, `tmpfs` and `devpts`. <sup>[ type=tmpfs,tmpfs-size=512M,destination=/path/in/container + type=image,source=fedora,destination=/fedora-image,rw=true + type=devpts,destination=/dev/pts Common Options: - · src, source: mount source spec for bind and volume. Mandatory for bind. + · src, source: mount source spec for bind and volume. Mandatory for bind. + + · dst, destination, target: mount destination spec. - · dst, destination, target: mount destination spec. + Options specific to volume: - · ro, readonly: true or false (default). + · ro, readonly: true or false (default). + + Options specific to image: + + · rw, readwrite: true or false (default). Options specific to bind: - · bind-propagation: shared, slave, private, rshared, rslave, or rprivate(default). See also mount(2). + · ro, readonly: true or false (default). + + · bind-propagation: shared, slave, private, unbindable, rshared, rslave, runbindable, or rprivate(default). See also mount(2). - . bind-nonrecursive: do not setup a recursive bind mount. By default it is recursive. + . bind-nonrecursive: do not setup a recursive bind mount. By default it is recursive. - . relabel: shared, private. + . relabel: shared, private. Options specific to tmpfs: - · tmpfs-size: Size of the tmpfs mount in bytes. Unlimited by default in Linux. + · ro, readonly: true or false (default). - · tmpfs-mode: File mode of the tmpfs in octal. (e.g. 700 or 0700.) Defaults to 1777 in Linux. + · tmpfs-size: Size of the tmpfs mount in bytes. Unlimited by default in Linux. - · tmpcopyup: Enable copyup from the image directory at the same location to the tmpfs. Used by default. + · tmpfs-mode: File mode of the tmpfs in octal. (e.g. 700 or 0700.) Defaults to 1777 in Linux. - · notmpcopyup: Disable copying files from the image to the tmpfs. + · tmpcopyup: Enable copyup from the image directory at the same location to the tmpfs. Used by default. -**--name**=*name* + · notmpcopyup: Disable copying files from the image to the tmpfs. + + +#### **--name**=*name* Assign a name to the container @@ -561,20 +578,20 @@ to the container with **--name** then it will generate a random string name. The name is useful any place you need to identify a container. This works for both background and foreground containers. -**--network**, **--net**="*bridge*" +#### **--network**=*mode*, **--net** -Set the Network mode for the container. Invalid if using **--dns**, **--dns-opt**, or **--dns-search** with **--network** that is set to 'none' or 'container:<name|id>'. +Set the network mode for the container. Invalid if using **--dns**, **--dns-opt**, or **--dns-search** with **--network** that is set to **none** or **container:**_id_. If used together with **--pod**, the container will not join the pod's network namespace. -Valid values are: +Valid _mode_ values are: -- `bridge`: create a network stack on the default bridge -- `none`: no networking -- `container:<name|id>`: reuse another container's network stack -- `host`: use the Podman host network stack. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure. -- `<network-name>|<network-id>`: connect to a user-defined network, multiple networks should be comma separated -- `ns:<path>`: path to a network namespace to join -- `private`: create a new namespace for the container (default) -- `slirp4netns[:OPTIONS,...]`: use slirp4netns to create a user network stack. This is the default for rootless containers. It is possible to specify these additional options: +- **bridge**: create a network stack on the default bridge; +- **none**: no networking; +- **container:**_id_: reuse another container's network stack; +- **host**: use the Podman host network stack. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure; +- **cni-network**: connect to a user-defined network, multiple networks should be comma-separated or they can be specified with multiple uses of the **--network** option; +- **ns:**_path_: path to a network namespace to join; +- **private**: create a new namespace for the container (default) +- **slirp4netns[:OPTIONS,...]**: use **slirp4netns**(1) to create a user network stack. This is the default for rootless containers. It is possible to specify these additional options: - **allow_host_loopback=true|false**: Allow the slirp4netns to reach the host loopback IP (`10.0.2.2`). Default is false. - **cidr=CIDR**: Specify ip range to use for this network. (Default is `10.0.2.0/24`). - **enable_ipv6=true|false**: Enable IPv6. Default is false. (Required for `outbound_addr6`). @@ -585,39 +602,39 @@ Valid values are: - **port_handler=rootlesskit**: Use rootlesskit for port forwarding. Default. - **port_handler=slirp4netns**: Use the slirp4netns port forwarding. -**--network-alias**=*alias* +#### **--network-alias**=*alias* -Not implemented +Add network-scoped alias for the container -**--no-healthcheck**=*true|false* +#### **--no-healthcheck**=*true|false* Disable any defined healthchecks for container. -**--no-hosts**=*true|false* +#### **--no-hosts**=*true|false* Do not create /etc/hosts for the container. By default, Podman will manage /etc/hosts, adding the container's own IP address and any hosts from **--add-host**. -**--no-hosts** disables this, and the image's **/etc/host** will be preserved unmodified. +#### **--no-hosts** disables this, and the image's **/etc/host** will be preserved unmodified. This option conflicts with **--add-host**. -**--oom-kill-disable**=*true|false* +#### **--oom-kill-disable**=*true|false* Whether to disable OOM Killer for the container or not. -**--oom-score-adj**=*num* +#### **--oom-score-adj**=*num* Tune the host's OOM preferences for containers (accepts -1000 to 1000) -**--override-arch**=*ARCH* +#### **--override-arch**=*ARCH* Override the architecture, defaults to hosts, of the image to be pulled. For example, `arm`. -**--override-os**=*OS* +#### **--override-os**=*OS* Override the OS, defaults to hosts, of the image to be pulled. For example, `windows`. -**--override-variant**=*VARIANT* +#### **--override-variant**=*VARIANT* Use _VARIANT_ instead of the default architecture variant of the container image. Some images can use multiple variants of the arm architectures, such as arm/v5 and arm/v7. -**--pid**=*pid* +#### **--pid**=*pid* Set the PID mode for the container Default is to create a private PID namespace for the container @@ -626,20 +643,20 @@ Default is to create a private PID namespace for the container - `ns`: join the specified PID namespace - `private`: create a new namespace for the container (default) -**--pids-limit**=*limit* +#### **--pids-limit**=*limit* Tune the container's pids limit. Set `0` to have unlimited pids for the container. (default "4096" on systems that support PIDS cgroups). -**--pod**=*name* +#### **--pod**=*name* Run container in an existing pod. If you want Podman to make the pod for you, preference the pod name with `new:`. To make a pod with more granular options, use the `podman pod create` command before creating a container. -**--pod-id-file**=*path* +#### **--pod-id-file**=*path* Run container in an existing pod and read the pod's ID from the specified file. If a container is run within a pod, and the pod has an infra-container, the infra-container will be started before the container is. -**--privileged**=*true|false* +#### **--privileged**=*true|false* Give extended privileges to this container. The default is *false*. @@ -655,7 +672,7 @@ container. Rootless containers cannot have more privileges than the account that launched them. -**--publish**, **-p**=*port* +#### **--publish**, **-p**=*port* Publish a container's port, or range of ports, to the host @@ -678,7 +695,7 @@ associated ports. If one container binds to a port, no other container can use t within the pod while it is in use. Containers in the pod can also communicate over localhost by having one container bind to localhost in the pod, and another connect to that port. -**--publish-all**, **-P**=*true|false* +#### **--publish-all**, **-P**=*true|false* Publish all exposed ports to random ports on the host interfaces. The default is *false*. @@ -690,7 +707,7 @@ port to a random port on the host within an *ephemeral port range* defined by `/proc/sys/net/ipv4/ip_local_port_range`. To find the mapping between the host ports and the exposed ports, use `podman port`. -**--pull**=*missing* +#### **--pull**=*missing* Pull image before creating ("always"|"missing"|"never") (default "missing"). 'missing': default value, attempt to pull the latest image from the registries listed in registries.conf if a local image does not exist.Raise an error if the image is not in any listed registry and is not present locally. @@ -699,11 +716,11 @@ Pull image before creating ("always"|"missing"|"never") (default "missing"). Defaults to *missing*. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output information when pulling images -**--read-only**=*true|false* +#### **--read-only**=*true|false* Mount the container's root filesystem as read only. @@ -711,15 +728,15 @@ By default a container will have its root filesystem writable allowing processes to write files anywhere. By specifying the `--read-only` flag the container will have its root filesystem mounted as read only prohibiting any writes. -**--read-only-tmpfs**=*true|false* +#### **--read-only-tmpfs**=*true|false* If container is running in --read-only mode, then mount a read-write tmpfs on /run, /tmp, and /var/tmp. The default is *true* -**--replace**=**true**|**false** +#### **--replace**=**true**|**false** If another container with the same name already exists, replace and remove it. The default is **false**. -**--restart**=*policy* +#### **--restart**=*policy* Restart policy to follow when containers exit. Restart policy will not take effect if a container is stopped via the `podman kill` or `podman stop` commands. @@ -735,7 +752,7 @@ Please note that restart will not restart containers after a system reboot. If this functionality is required in your environment, you can invoke Podman from a systemd unit file, or create an init script for whichever init system is in use. To generate systemd unit files, please see *podman generate systemd* -**--rm**=*true|false* +#### **--rm**=*true|false* Automatically remove the container when it exits. The default is *false*. @@ -743,14 +760,14 @@ Note that the container will not be removed when it could not be created or started successfully. This allows the user to inspect the container after failure. -**--rootfs** +#### **--rootfs** If specified, the first argument refers to an exploded container on the file system. This is useful to run a container without requiring any image management, the rootfs of the container is assumed to be managed externally. -**--sdnotify**=**container**|**conmon**|**ignore** +#### **--sdnotify**=**container**|**conmon**|**ignore** Determines how to use the NOTIFY_SOCKET, as passed with systemd and Type=notify. @@ -761,13 +778,13 @@ has started. The socket is never passed to the runtime or the container. The **ignore** option removes NOTIFY_SOCKET from the environment for itself and child processes, for the case where some other process above Podman uses NOTIFY_SOCKET and Podman should not use it. -**--seccomp-policy**=*policy* +#### **--seccomp-policy**=*policy* Specify the policy to select the seccomp profile. If set to *image*, Podman will look for a "io.podman.seccomp.profile" label in the container-image config and use its value as a seccomp profile. Otherwise, Podman will follow the *default* policy by applying the default profile unless specified otherwise via *--security-opt seccomp* as described below. Note that this feature is experimental and may change in the future. -**--security-opt**=*option* +#### **--security-opt**=*option* Security Options @@ -791,29 +808,30 @@ Security Options Note: Labeling can be disabled for all containers by setting label=false in the **containers.conf** (`/etc/containers/containers.conf` or `$HOME/.config/containers/containers.conf`) file. -**--shm-size**=*size* +#### **--shm-size**=*size* Size of `/dev/shm` (format: <number>[<unit>], where unit = b (bytes), k (kilobytes), m (megabytes), or g (gigabytes)) If you omit the unit, the system uses bytes. If you omit the size entirely, the system uses `64m`. When size is `0`, there is no limit on the amount of memory used for IPC by the container. -**--stop-signal**=*SIGTERM* +#### **--stop-signal**=*SIGTERM* Signal to stop a container. Default is SIGTERM. -**--stop-timeout**=*seconds* +#### **--stop-timeout**=*seconds* Timeout (in seconds) to stop a container. Default is 10. +Remote connections use local containers.conf for defaults -**--subgidname**=*name* +#### **--subgidname**=*name* Name for GID map from the `/etc/subgid` file. Using this flag will run the container with user namespace enabled. This flag conflicts with `--userns` and `--gidmap`. -**--subuidname**=*name* +#### **--subuidname**=*name* Name for UID map from the `/etc/subuid` file. Using this flag will run the container with user namespace enabled. This flag conflicts with `--userns` and `--uidmap`. -**--sysctl**=*SYSCTL* +#### **--sysctl**=*SYSCTL* Configure namespaced kernel parameters at runtime @@ -829,7 +847,7 @@ Network Namespace - current sysctls allowed: Note: if you use the --network=host option these sysctls will not be allowed. -**--systemd**=*true|false|always* +#### **--systemd**=*true|false|always* Run container in systemd mode. The default is *true*. @@ -853,7 +871,7 @@ The `container_manage_cgroup` boolean must be enabled for this to be allowed on `setsebool -P container_manage_cgroup true` -**--tmpfs**=*fs* +#### **--tmpfs**=*fs* Create a tmpfs mount @@ -866,7 +884,7 @@ options are the same as the Linux default `mount` flags. If you do not specify any options, the systems uses the following options: `rw,noexec,nosuid,nodev`. -**--tty**, **-t**=*true|false* +#### **--tty**, **-t**=*true|false* Allocate a pseudo-TTY. The default is *false*. @@ -877,27 +895,29 @@ interactive shell. The default is false. Note: The **-t** option is incompatible with a redirection of the Podman client standard input. -**--tz**=*timezone* +#### **--tz**=*timezone* Set timezone in container. This flag takes area-based timezones, GMT time, as well as `local`, which sets the timezone in the container to match the host machine. See `/usr/share/zoneinfo/` for valid timezones. +Remote connections use local containers.conf for defaults -**--umask**=*umask* +#### **--umask**=*umask* Set the umask inside the container. Defaults to `0022`. +Remote connections use local containers.conf for defaults -**--uidmap**=*container_uid:host_uid:amount* +#### **--uidmap**=*container_uid:host_uid:amount* UID map for the user namespace. Using this flag will run the container with user namespace enabled. It conflicts with the `--userns` and `--subuidname` flags. The following example maps uids 0-2000 in the container to the uids 30000-31999 on the host and gids 0-2000 in the container to the gids 30000-31999 on the host. `--uidmap=0:30000:2000` -**--ulimit**=*option* +#### **--ulimit**=*option* Ulimit options You can pass `host` to copy the current configuration from the host. -**--user**, **-u**=*user* +#### **--user**, **-u**=*user* Sets the username or UID used and optionally the groupname or GID for the specified command. @@ -906,12 +926,12 @@ The following examples are all valid: Without this argument the command will be run as root in the container. -**--userns**=*auto*[:OPTIONS] -**--userns**=*host* -**--userns**=*keep-id* -**--userns**=container:container -**--userns**=private -**--userns**=*ns:my_namespace* +#### **--userns**=*auto*[:OPTIONS] +#### **--userns**=*host* +#### **--userns**=*keep-id* +#### **--userns**=container:container +#### **--userns**=private +#### **--userns**=*ns:my_namespace* Set the user namespace mode for the container. It defaults to the **PODMAN_USERNS** environment variable. An empty value means user namespaces are disabled. @@ -928,7 +948,7 @@ Set the user namespace mode for the container. It defaults to the **PODMAN_USER This option is incompatible with --gidmap, --uidmap, --subuid and --subgid -**--uts**=*mode* +#### **--uts**=*mode* Set the UTS namespace mode for the container. The following values are supported: @@ -937,7 +957,7 @@ Set the UTS namespace mode for the container. The following values are supported - **ns:[path]**: run the container in the given existing UTS namespace. - **container:[container]**: join the UTS namespace of the specified container. -**--volume**, **-v**[=*[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]*] +#### **--volume**, **-v**[=*[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]*] Create a bind mount. If you specify, ` -v /HOST-DIR:/CONTAINER-DIR`, podman bind mounts `/HOST-DIR` in the host to `/CONTAINER-DIR` in the podman @@ -949,7 +969,7 @@ The _options_ is a comma delimited list and can be: * **rw**|**ro** * **z**|**Z** -* [**r**]**shared**|[**r**]**slave**|[**r**]**private** +* [**r**]**shared**|[**r**]**slave**|[**r**]**private**[**r**]**unbindable** * [**r**]**bind** * [**no**]**exec** * [**no**]**dev** @@ -1035,13 +1055,14 @@ visible on host and vice versa. Making a volume `slave` enables only one way mount propagation and that is mounts done on host under that volume will be visible inside container but not the other way around. <sup>[[1]](#Footnote1)</sup> -To control mount propagation property of volume one can use `:[r]shared`, -`:[r]slave` or `:[r]private` propagation flag. Propagation property can -be specified only for bind mounted volumes and not for internal volumes or -named volumes. For mount propagation to work source mount point (mount point -where source dir is mounted on) has to have right propagation properties. For -shared volumes, source mount point has to be shared. And for slave volumes, -source mount has to be either shared or slave. <sup>[[1]](#Footnote1)</sup> +To control mount propagation property of a volume one can use the [**r**]**shared**, +[**r**]**slave**, [**r**]**private** or the [**r**]**unbindable** propagation flag. +Propagation property can be specified only for bind mounted volumes and not for +internal volumes or named volumes. For mount propagation to work the source mount +point (the mount point where source dir is mounted on) has to have the right propagation +properties. For shared volumes, the source mount point has to be shared. And for +slave volumes, the source mount point has to be either shared or slave. +<sup>[[1]](#Footnote1)</sup> If you want to recursively mount a volume and all of its submounts into a container, then you can use the `rbind` option. By default the bind option is @@ -1077,7 +1098,7 @@ will convert /foo into a `shared` mount point. Alternatively one can directly change propagation properties of source mount. Say `/` is source mount for `/foo`, then use `mount --make-shared /` to convert `/` into a `shared` mount. -**--volumes-from**[=*CONTAINER*[:*OPTIONS*]] +#### **--volumes-from**[=*CONTAINER*[:*OPTIONS*]] Mount volumes from the specified container(s). Used to share volumes between containers. The *options* is a comma delimited list with the following available elements: @@ -1110,7 +1131,7 @@ If the location of the volume from the source container overlaps with data residing on a target container, then the volume hides that data on the target. -**--workdir**, **-w**=*dir* +#### **--workdir**, **-w**=*dir* Working directory inside the container diff --git a/docs/source/markdown/podman-diff.1.md b/docs/source/markdown/podman-diff.1.md index 5b0434a07..227da4864 100644 --- a/docs/source/markdown/podman-diff.1.md +++ b/docs/source/markdown/podman-diff.1.md @@ -13,11 +13,11 @@ Displays changes on a container or image's filesystem. The container or image w ## OPTIONS -**--format** +#### **--format** Alter the output into a different format. The only valid format for diff is `json`. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. diff --git a/docs/source/markdown/podman-events.1.md b/docs/source/markdown/podman-events.1.md index d0bc3cef8..4f9e9418f 100644 --- a/docs/source/markdown/podman-events.1.md +++ b/docs/source/markdown/podman-events.1.md @@ -70,16 +70,16 @@ The *volume* type will report the following statuses: ## OPTIONS -**--help** +#### **--help** Print usage statement. -**--format** +#### **--format** Format the output to JSON Lines or using the given Go template. -**--filter**=*filter* +#### **--filter**=*filter* Filter events that are displayed. They must be in the format of "filter=value". The following filters are supported: @@ -93,12 +93,12 @@ filters are supported: In the case where an ID is used, the ID may be in its full or shortened form. -**--since**=*timestamp* +#### **--since**=*timestamp* Show all events created since the given timestamp -**--until**=*timestamp* +#### **--until**=*timestamp* Show all events created until the given timestamp diff --git a/docs/source/markdown/podman-exec.1.md b/docs/source/markdown/podman-exec.1.md index f44a3d3d9..17d620cf8 100644 --- a/docs/source/markdown/podman-exec.1.md +++ b/docs/source/markdown/podman-exec.1.md @@ -13,39 +13,39 @@ podman\-exec - Execute a command in a running container ## OPTIONS -**--detach**, **-d** +#### **--detach**, **-d** Start the exec session, but do not attach to it. The command will run in the background and the exec session will be automatically removed when it completes. The **podman exec** command will print the ID of the exec session and exit immediately after it starts. -**--detach-keys**=*sequence* +#### **--detach-keys**=*sequence* Specify the key sequence for detaching a container. Format is a single character `[a-Z]` or one or more `ctrl-<value>` characters where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`. Specifying "" will disable this feature. The default is *ctrl-p,ctrl-q*. -**--env**, **-e** +#### **--env**, **-e** You may specify arbitrary environment variables that are available for the command to be executed. -**--env-file**=*file* +#### **--env-file**=*file* Read in a line delimited file of environment variables. -**--interactive**, **-i**=*true|false* +#### **--interactive**, **-i**=*true|false* When set to true, keep stdin open even if not attached. The default is *false*. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--preserve-fds**=*N* +#### **--preserve-fds**=*N* Pass down to the process N additional file descriptors (in addition to 0, 1, 2). The total FDs will be 3+N. -**--privileged** +#### **--privileged** Give extended privileges to this container. The default is *false*. @@ -61,17 +61,17 @@ points, Apparmor/SELinux separation, and Seccomp filters are all disabled. Rootless containers cannot have more privileges than the account that launched them. -**--tty**, **-t** +#### **--tty**, **-t** Allocate a pseudo-TTY. -**--user**, **-u** +#### **--user**, **-u** Sets the username or UID used and optionally the groupname or GID for the specified command. The following examples are all valid: --user [user | user:group | uid | uid:gid | user:gid | uid:group ] -**--workdir**, **-w**=*path* +#### **--workdir**, **-w**=*path* Working directory inside the container diff --git a/docs/source/markdown/podman-export.1.md b/docs/source/markdown/podman-export.1.md index 4286d0e2f..63989a4db 100644 --- a/docs/source/markdown/podman-export.1.md +++ b/docs/source/markdown/podman-export.1.md @@ -12,6 +12,8 @@ podman\-export - Export a container's filesystem contents as a tar archive **podman export** exports the filesystem of a container and saves it as a tarball on the local machine. **podman export** writes to STDOUT by default and can be redirected to a file using the `--output` flag. +The image of the container exported by **podman export** can be imported by **podman import**. +To export image(s) with parent layers, use **podman save**. Note: `:` is a restricted character and cannot be part of the file name. **podman [GLOBAL OPTIONS]** @@ -22,11 +24,11 @@ Note: `:` is a restricted character and cannot be part of the file name. ## OPTIONS -**--output**, **-o** +#### **--output**, **-o** Write to a file, default is STDOUT -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-generate-kube.1.md b/docs/source/markdown/podman-generate-kube.1.md index 47d6e0445..6fad89b1f 100644 --- a/docs/source/markdown/podman-generate-kube.1.md +++ b/docs/source/markdown/podman-generate-kube.1.md @@ -14,11 +14,11 @@ Note that the generated Kubernetes YAML file can be used to re-run the deploymen ## OPTIONS -**--filename**, **-f**=**filename** +#### **--filename**, **-f**=**filename** Output to the given file, instead of STDOUT. If the file already exists, `generate kube` will refuse to replace it and return an error. -**--service**, **-s** +#### **--service**, **-s** Generate a Kubernetes service object in addition to the Pods. Used to generate a Service specification for the corresponding Pod output. In particular, if the object has portmap bindings, the service specification will include a NodePort declaration to expose the service. A random port is assigned by Podman in the specification. diff --git a/docs/source/markdown/podman-generate-systemd.1.md b/docs/source/markdown/podman-generate-systemd.1.md index f95c57399..445888d30 100644 --- a/docs/source/markdown/podman-generate-systemd.1.md +++ b/docs/source/markdown/podman-generate-systemd.1.md @@ -14,42 +14,42 @@ _Note: If you use this command with the remote client, you would still have to p ## OPTIONS -**--files**, **-f** +#### **--files**, **-f** Generate files instead of printing to stdout. The generated files are named {container,pod}-{ID,name}.service and will be placed in the current working directory. Note: On a system with SELinux enabled, the generated files will inherit contexts from the current working directory. Depending on the SELinux setup, changes to the generated files using `restorecon`, `chcon`, or `semanage` may be required to allow systemd to access these files. Alternatively, use the `-Z` option when running `mv` or `cp`. -**--format**=*format* +#### **--format**=*format* Print the created units in specified format (json). If `--files` is specified the paths to the created files will be printed instead of the unit content. -**--name**, **-n** +#### **--name**, **-n** Use the name of the container for the start, stop, and description in the unit file -**--new** +#### **--new** Using this flag will yield unit files that do not expect containers and pods to exist. Instead, new containers and pods are created based on their configuration files. The unit files are created best effort and may need to be further edited; please review the generated files carefully before using them in production. -**--time**, **-t**=*value* +#### **--time**, **-t**=*value* Override the default stop timeout for the container with the given value. -**--restart-policy**=*policy* +#### **--restart-policy**=*policy* Set the systemd restart policy. The restart-policy must be one of: "no", "on-success", "on-failure", "on-abnormal", "on-watchdog", "on-abort", or "always". The default policy is *on-failure*. -**--container-prefix**=*prefix* +#### **--container-prefix**=*prefix* Set the systemd unit name prefix for containers. The default is *container*. -**--pod-prefix**=*prefix* +#### **--pod-prefix**=*prefix* Set the systemd unit name prefix for pods. The default is *pod*. -**--separator**=*separator* +#### **--separator**=*separator* Set the systemd unit name separator between the name/id of a container/pod and the prefix. The default is *-*. diff --git a/docs/source/markdown/podman-healthcheck-run.1.md b/docs/source/markdown/podman-healthcheck-run.1.md index 546d847eb..fa10d5dca 100644 --- a/docs/source/markdown/podman-healthcheck-run.1.md +++ b/docs/source/markdown/podman-healthcheck-run.1.md @@ -21,7 +21,7 @@ Possible errors that can occur during the healthcheck are: * container is not running ## OPTIONS -**--help** +#### **--help** Print usage statement diff --git a/docs/source/markdown/podman-history.1.md b/docs/source/markdown/podman-history.1.md index 26b213af9..2dd41e9f5 100644 --- a/docs/source/markdown/podman-history.1.md +++ b/docs/source/markdown/podman-history.1.md @@ -29,26 +29,26 @@ Valid placeholders for the Go template are listed below: ## OPTIONS -**--human**, **-H**=*true|false* +#### **--human**, **-H**=*true|false* Display sizes and dates in human readable format (default *true*). -**--no-trunc**=*true|false* +#### **--no-trunc**=*true|false* Do not truncate the output (default *false*). -**--notruncate** +#### **--notruncate** Do not truncate the output -**--quiet**, **-q**=*true|false* +#### **--quiet**, **-q**=*true|false* Print the numeric IDs only (default *false*). -**--format**=*format* +#### **--format**=*format* Alter the output for a format like 'json' or a Go template. -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-image-diff.1.md b/docs/source/markdown/podman-image-diff.1.md index 1e7397cd8..9b1dfa45a 100644 --- a/docs/source/markdown/podman-image-diff.1.md +++ b/docs/source/markdown/podman-image-diff.1.md @@ -11,7 +11,7 @@ Displays changes on a container or image's filesystem. The container or image w ## OPTIONS -**--format** +#### **--format** Alter the output into a different format. The only valid format for diff is `json`. diff --git a/docs/source/markdown/podman-image-exists.1.md b/docs/source/markdown/podman-image-exists.1.md index 877324cd1..5d5cb1647 100644 --- a/docs/source/markdown/podman-image-exists.1.md +++ b/docs/source/markdown/podman-image-exists.1.md @@ -14,7 +14,7 @@ was an issue accessing the local storage. ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-image-mount.1.md b/docs/source/markdown/podman-image-mount.1.md index f98b46571..8cb9684a7 100644 --- a/docs/source/markdown/podman-image-mount.1.md +++ b/docs/source/markdown/podman-image-mount.1.md @@ -22,11 +22,11 @@ returned. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Mount all images. -**--format**=*format* +#### **--format**=*format* Print the mounted images in specified format (json). diff --git a/docs/source/markdown/podman-image-prune.1.md b/docs/source/markdown/podman-image-prune.1.md index d4fbe45c3..d8558d244 100644 --- a/docs/source/markdown/podman-image-prune.1.md +++ b/docs/source/markdown/podman-image-prune.1.md @@ -14,19 +14,19 @@ does not have any containers based on it. The image prune command does not prune cache images that only use layers that are necessary for other images. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Remove dangling images and images that have no associated containers. -**--filter**=*filters* +#### **--filter**=*filters* Provide filter values. -**--force**, **-f** +#### **--force**, **-f** Do not provide an interactive prompt for container removal. -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-image-sign.1.md b/docs/source/markdown/podman-image-sign.1.md index fa75691bc..1bd6e5b9d 100644 --- a/docs/source/markdown/podman-image-sign.1.md +++ b/docs/source/markdown/podman-image-sign.1.md @@ -13,20 +13,20 @@ derived from the registry configuration files in /etc/containers/registries.d. B ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement. -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--directory**, **-d**=*dir* +#### **--directory**, **-d**=*dir* Store the signatures in the specified directory. Default: /var/lib/containers/sigstore -**--sign-by**=*identity* +#### **--sign-by**=*identity* Override the default identity of the signature. diff --git a/docs/source/markdown/podman-image-tree.1.md b/docs/source/markdown/podman-image-tree.1.md index c4624e05c..9a52e8444 100644 --- a/docs/source/markdown/podman-image-tree.1.md +++ b/docs/source/markdown/podman-image-tree.1.md @@ -13,11 +13,11 @@ If you do not provide a *tag*, Podman will default to `latest` for the *image*. Layers are indicated with image tags as `Top Layer of`, when the tag is known locally. ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--whatrequires** +#### **--whatrequires** Show all child images and layers of the specified image diff --git a/docs/source/markdown/podman-image-trust.1.md b/docs/source/markdown/podman-image-trust.1.md index 8b80ca602..002f42bff 100644 --- a/docs/source/markdown/podman-image-trust.1.md +++ b/docs/source/markdown/podman-image-trust.1.md @@ -37,15 +37,15 @@ Require signature (“signedBy”). Trust may be updated using the command **podman image trust set** for an existing trust scope. ## OPTIONS -**-h**, **--help** +#### **--help**, **-h** Print usage statement. -**-f**, **--pubkeysfile**=*KEY1* +#### **--pubkeysfile**=*KEY1*, **-f** A path to an exported public key on the local system. Key paths will be referenced in policy.json. Any path to a file may be used but locating the file in **/etc/pki/containers** is recommended. Options may be used multiple times to require an image be signed by multiple keys. The **--pubkeysfile** option is required for the **signedBy** type. -**-t**, **--type**=*value* +#### **--type**=*value*, **-t** The trust type for this policy entry. Accepted values: **signedBy** (default): Require signatures with corresponding list of @@ -56,10 +56,10 @@ Trust may be updated using the command **podman image trust set** for an existin ## show OPTIONS -**--raw** +#### **--raw** Output trust policy file as raw JSON -**-j**, **--json** +#### **--json**, **-j** Output trust as JSON for machine parsing ## EXAMPLES diff --git a/docs/source/markdown/podman-image-unmount.1.md b/docs/source/markdown/podman-image-unmount.1.md index c026c49ac..62e879fa1 100644 --- a/docs/source/markdown/podman-image-unmount.1.md +++ b/docs/source/markdown/podman-image-unmount.1.md @@ -19,11 +19,11 @@ counter reaches zero indicating no other processes are using the mount. An unmount can be forced with the --force flag. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** All of the currently mounted images will be unmounted. -**--force**, **-f** +#### **--force**, **-f** Force the unmounting of specified images' root file system, even if other processes have mounted it. diff --git a/docs/source/markdown/podman-images.1.md b/docs/source/markdown/podman-images.1.md index 379f7573e..9ee62ef2b 100644 --- a/docs/source/markdown/podman-images.1.md +++ b/docs/source/markdown/podman-images.1.md @@ -15,15 +15,15 @@ Displays locally stored images, their names, and their IDs. ## OPTIONS -**-a**, **--all** +#### **--all**, **-a** Show all images (by default filter out the intermediate image layers). The default is false. -**--digests** +#### **--digests** Show image digests -**-f**, **--filter**=*filter* +#### **--filter**=*filter*, **-f** Filter output based on conditions provided @@ -47,7 +47,7 @@ Filter output based on conditions provided **reference=** Filter by image name, specified as regular expressions. -**--format**=*format* +#### **--format**=*format* Change the default output format. This can be of a supported type like 'json' or a Go template. @@ -64,23 +64,23 @@ Valid placeholders for the Go template are listed below: | .Size | Size of layer on disk | | .History | History of the image layer | -**--history** +#### **--history** Display the history of image names. If an image gets re-tagged or untagged, then the image name history gets prepended (latest image first). This is especially useful when undoing a tag operation or an image does not contain any name because it has been untagged. -**--noheading**, **-n** +#### **--noheading**, **-n** Omit the table headings from the listing of images. -**--no-trunc** +#### **--no-trunc** Do not truncate output. -**--quiet**, **-q** +#### **--quiet**, **-q** Lists only the image IDs. -**--sort**=*sort* +#### **--sort**=*sort* Sort by created, id, repository, size or tag (default: created) diff --git a/docs/source/markdown/podman-import.1.md b/docs/source/markdown/podman-import.1.md index 946b680dd..427c67da4 100644 --- a/docs/source/markdown/podman-import.1.md +++ b/docs/source/markdown/podman-import.1.md @@ -14,21 +14,23 @@ and saves it as a filesystem image. Remote tarballs can be specified using a URL Various image instructions can be configured with the **--change** flag and a commit message can be set using the **--message** flag. **reference**, if present, is a tag to assign to the image. +**podman import** is used for importing from the archive generated by **podman export**, that includes the container's filesystem. To import the archive of image layers created by **podman save**, use **podman load**. Note: `:` is a restricted character and cannot be part of the file name. ## OPTIONS -**-c**, **--change**=*instruction* +#### **--change**=*instruction*, **-c** Apply the following possible instructions to the created image: **CMD** | **ENTRYPOINT** | **ENV** | **EXPOSE** | **LABEL** | **STOPSIGNAL** | **USER** | **VOLUME** | **WORKDIR** + Can be set multiple times -**--message**, **-m**=*message* +#### **--message**, **-m**=*message* Set commit message for imported image -**--quiet**, **-q** +#### **--quiet**, **-q** Shows progress on the import @@ -36,7 +38,7 @@ Shows progress on the import Print additional debugging information -**--help**, **-h** +#### **--help**, **-h** Print usage statement @@ -55,7 +57,7 @@ db65d991f3bbf7f31ed1064db9a6ced7652e3f8166c4736aa9133dadd3c7acb3 ``` ``` -$ podman import --change "ENTRYPOINT ["/bin/sh","-c","test-image"]" --change LABEL=blue=image test-image.tar image-imported +$ podman import --change 'ENTRYPOINT ["/bin/sh","-c","test-image"]' --change LABEL=blue=image test-image.tar image-imported Getting image source signatures Copying blob e3b0c44298fc skipped: already exists Copying config 1105523502 done diff --git a/docs/source/markdown/podman-info.1.md b/docs/source/markdown/podman-info.1.md index 19dd61c15..dd01a0f49 100644 --- a/docs/source/markdown/podman-info.1.md +++ b/docs/source/markdown/podman-info.1.md @@ -15,11 +15,11 @@ Displays information pertinent to the host, current storage stats, configured co ## OPTIONS -**-D**, **--debug** +#### **--debug**, **-D** Show additional information -**-f**, **--format**=*format* +#### **--format**=*format*, **-f** Change output format to "json" or a Go template. diff --git a/docs/source/markdown/podman-init.1.md b/docs/source/markdown/podman-init.1.md index 3b49cfb99..e37902e13 100644 --- a/docs/source/markdown/podman-init.1.md +++ b/docs/source/markdown/podman-init.1.md @@ -18,11 +18,11 @@ This can be used to inspect the container before it runs, or debug why a contain ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Initialize all containers. Containers that have already initialized (including containers that have been started and are running) are ignored. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. diff --git a/docs/source/markdown/podman-inspect.1.md b/docs/source/markdown/podman-inspect.1.md index eb7cf74c6..d0e2fbc99 100644 --- a/docs/source/markdown/podman-inspect.1.md +++ b/docs/source/markdown/podman-inspect.1.md @@ -24,17 +24,17 @@ For more inspection options, see: ## OPTIONS -**--type**, **-t**=*type* +#### **--type**, **-t**=*type* Return JSON for the specified type. Type can be 'container', 'image', 'volume', 'network', 'pod', or 'all' (default: all) (Only meaningful when invoked as *podman inspect*) -**--format**, **-f**=*format* +#### **--format**, **-f**=*format* Format the output using the given Go template. The keys of the returned JSON can be used as the values for the --format flag (see examples below). -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. @@ -43,7 +43,7 @@ This option can be used to inspect the latest pod created when used with --type The latest option is not supported on the remote client or when invoked as *podman image inspect*. -**--size**, **-s** +#### **--size**, **-s** In addition to normal output, display the total file size if the type is a container. diff --git a/docs/source/markdown/podman-kill.1.md b/docs/source/markdown/podman-kill.1.md index 010c04edc..5956c03da 100644 --- a/docs/source/markdown/podman-kill.1.md +++ b/docs/source/markdown/podman-kill.1.md @@ -12,18 +12,18 @@ podman\-kill - Kill the main process in one or more containers The main process inside each container specified will be sent SIGKILL, or any signal specified with option --signal. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Signal all running containers. This does not include paused containers. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--signal**, **-s** +#### **--signal**, **-s** Signal to send to the container. For more information on Linux signals, refer to *man signal(7)*. diff --git a/docs/source/markdown/podman-load.1.md b/docs/source/markdown/podman-load.1.md index 308a3493b..177709a43 100644 --- a/docs/source/markdown/podman-load.1.md +++ b/docs/source/markdown/podman-load.1.md @@ -1,7 +1,7 @@ % podman-load(1) ## NAME -podman\-load - Load an image from a container image archive into container storage +podman\-load - Load image(s) from a tar archive into container storage ## SYNOPSIS **podman load** [*options*] [*name*[:*tag*]] @@ -11,6 +11,7 @@ podman\-load - Load an image from a container image archive into container stora ## DESCRIPTION **podman load** loads an image from either an **oci-archive** or a **docker-archive** stored on the local machine into container storage. **podman load** reads from stdin by default or a file if the **input** option is set. You can also specify a name for the image if the archive does not contain a named reference, of if you want an additional name for the local image. +**podman load** is used for loading from the archive generated by **podman save**, that includes the image parent layers. To load the archive of container's filesystem created by **podman export**, use **podman import**. The local client further supports loading an **oci-dir** or a **docker-dir** as created with **podman save** (1). @@ -26,7 +27,7 @@ Note: `:` is a restricted character and cannot be part of the file name. ## OPTIONS -**--input**, **-i**=*input* +#### **--input**, **-i**=*input* Read from archive file, default is STDIN. @@ -34,11 +35,11 @@ The remote client requires the use of this option. NOTE: Use the environment variable `TMPDIR` to change the temporary storage location of container images. Podman defaults to use `/var/tmp`. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress the progress output -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-login.1.md b/docs/source/markdown/podman-login.1.md index 7c09d99fe..89ef289e3 100644 --- a/docs/source/markdown/podman-login.1.md +++ b/docs/source/markdown/podman-login.1.md @@ -28,41 +28,41 @@ For more details about format and configurations of the auth.json file, please r ## OPTIONS -**--password**, **-p**=*password* +#### **--password**, **-p**=*password* Password for registry -**--password-stdin** +#### **--password-stdin** Take the password from stdin -**--username**, **-u**=*username* +#### **--username**, **-u**=*username* Username for registry -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json. Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--get-login** +#### **--get-login** Return the logged-in user for the registry. Return error if no login is found. -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--tls-verify**=*true|false* +#### **--tls-verify**=*true|false* Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, TLS verification will be used unless the target registry is listed as an insecure registry in registries.conf. -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-logout.1.md b/docs/source/markdown/podman-logout.1.md index 25f6d97b1..c35c4856b 100644 --- a/docs/source/markdown/podman-logout.1.md +++ b/docs/source/markdown/podman-logout.1.md @@ -21,18 +21,18 @@ All the cached credentials can be removed by setting the **all** flag. ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json. Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--all**, **-a** +#### **--all**, **-a** Remove the cached credentials for all registries in the auth file -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-logs.1.md b/docs/source/markdown/podman-logs.1.md index bcfc0bae8..772668c8b 100644 --- a/docs/source/markdown/podman-logs.1.md +++ b/docs/source/markdown/podman-logs.1.md @@ -15,7 +15,7 @@ any logs at the time you execute podman logs). ## OPTIONS -**--follow**, **-f** +#### **--follow**, **-f** Follow log output. Default is false. @@ -23,30 +23,30 @@ Note: If you are following a container which is removed `podman container rm` or removed on exit `podman run --rm ...`, then there is a chance the the log file will be removed before `podman logs` reads the final content. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**-n**, **--names** +#### **--names**, **-n** Output the container name in the log -**--since**=*TIMESTAMP* +#### **--since**=*TIMESTAMP* Show logs since TIMESTAMP. The --since option can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. 10m, 1h30m) computed relative to the client machine's time. Supported formats for date formatted time stamps include RFC3339Nano, RFC3339, 2006-01-02T15:04:05, 2006-01-02T15:04:05.999999999, 2006-01-02Z07:00, and 2006-01-02. -**--tail**=*LINES* +#### **--tail**=*LINES* Output the specified number of LINES at the end of the logs. LINES must be an integer. Defaults to -1, which prints all lines -**--timestamps**, **-t** +#### **--timestamps**, **-t** Show timestamps in the log outputs. The default is false diff --git a/docs/source/markdown/podman-manifest-add.1.md b/docs/source/markdown/podman-manifest-add.1.md index 4c0bad2ae..6e6409765 100644 --- a/docs/source/markdown/podman-manifest-add.1.md +++ b/docs/source/markdown/podman-manifest-add.1.md @@ -15,25 +15,25 @@ The list image's ID. ## OPTIONS -**--all** +#### **--all** If the image which should be added to the list or index is itself a list or index, add all of the contents to the local list. By default, only one image from such a list or index will be added to the list or index. Combining *--all* with any of the other options described below is NOT recommended. -**--annotation** *annotation=value* +#### **--annotation** *annotation=value* Set an annotation on the entry for the newly-added image. -**--arch** +#### **--arch** Override the architecture which the list or index records as a requirement for the image. If *imageName* refers to a manifest list or image index, the architecture information will be retrieved from it. Otherwise, it will be retrieved from the image's configuration information. -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -41,39 +41,39 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--creds**=*creds* +#### **--creds**=*creds* The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--features** +#### **--features** Specify the features list which the list or index records as requirements for the image. This option is rarely used. -**--os** +#### **--os** Override the OS which the list or index records as a requirement for the image. If *imagename* refers to a manifest list or image index, the OS information will be retrieved from it. Otherwise, it will be retrieved from the image's configuration information. -**--os-version** +#### **--os-version** Specify the OS version which the list or index records as a requirement for the image. This option is rarely used. -**--tls-verify** +#### **--tls-verify** Require HTTPS and verify certificates when talking to container registries (defaults to true). -**--variant** +#### **--variant** Specify the variant which the list or index records for the image. This option is typically used to distinguish between multiple entries which share the same diff --git a/docs/source/markdown/podman-manifest-annotate.1.md b/docs/source/markdown/podman-manifest-annotate.1.md index 25ad4642e..2126b71ec 100644 --- a/docs/source/markdown/podman-manifest-annotate.1.md +++ b/docs/source/markdown/podman-manifest-annotate.1.md @@ -12,39 +12,39 @@ Adds or updates information about an image included in a manifest list or image ## OPTIONS -**--annotation** *annotation=value* +#### **--annotation** *annotation=value* Set an annotation on the entry for the specified image. -**--arch** +#### **--arch** Override the architecture which the list or index records as a requirement for the image. This is usually automatically retrieved from the image's configuration information, so it is rarely necessary to use this option. -**--features** +#### **--features** Specify the features list which the list or index records as requirements for the image. This option is rarely used. -**--os** +#### **--os** Override the OS which the list or index records as a requirement for the image. This is usually automatically retrieved from the image's configuration information, so it is rarely necessary to use this option. -**--os-features** +#### **--os-features** Specify the OS features list which the list or index records as requirements for the image. This option is rarely used. -**--os-version** +#### **--os-version** Specify the OS version which the list or index records as a requirement for the image. This option is rarely used. -**--variant** +#### **--variant** Specify the variant which the list or index records for the image. This option is typically used to distinguish between multiple entries which share the same diff --git a/docs/source/markdown/podman-manifest-create.1.md b/docs/source/markdown/podman-manifest-create.1.md index 537a641f2..3a3d5e4b0 100644 --- a/docs/source/markdown/podman-manifest-create.1.md +++ b/docs/source/markdown/podman-manifest-create.1.md @@ -16,7 +16,7 @@ index. ## OPTIONS -**--all** +#### **--all** If any of the images which should be added to the new list or index are themselves lists or indexes, add all of their contents. By default, only one diff --git a/docs/source/markdown/podman-manifest-push.1.md b/docs/source/markdown/podman-manifest-push.1.md index 9cf0b159c..0c1e5ea04 100644 --- a/docs/source/markdown/podman-manifest-push.1.md +++ b/docs/source/markdown/podman-manifest-push.1.md @@ -14,12 +14,12 @@ The list image's ID and the digest of the image's manifest. ## OPTIONS -**--all** +#### **--all** Push the images mentioned in the manifest list or image index, in addition to the list or index itself. -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -27,42 +27,42 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--creds**=*creds* +#### **--creds**=*creds* The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--digestfile**=*Digestfile* +#### **--digestfile**=*Digestfile* After copying the image, write the digest of the resulting image to the file. -**--format**, **-f**=*format* +#### **--format**, **-f**=*format* Manifest list type (oci or v2s2) to use when pushing the list (default is oci). -**--purge** +#### **--purge** Delete the manifest list or image index from local storage if pushing succeeds. -**--quiet**, **-q** +#### **--quiet**, **-q** When writing the manifest, suppress progress output -**--remove-signatures** +#### **--remove-signatures** Don't copy signatures when pushing images. -**--sign-by**=*fingerprint* +#### **--sign-by**=*fingerprint* Sign the pushed images using the GPG key that matches the specified fingerprint. -**--tls-verify** +#### **--tls-verify** Require HTTPS and verify certificates when talking to container registries. (defaults to true) diff --git a/docs/source/markdown/podman-mount.1.md b/docs/source/markdown/podman-mount.1.md index 33c5aece8..3e7aeaa32 100644 --- a/docs/source/markdown/podman-mount.1.md +++ b/docs/source/markdown/podman-mount.1.md @@ -13,7 +13,9 @@ Mounts the specified containers' root file system in a location which can be accessed from the host, and returns its location. If you execute the command without any arguments, Podman will list all of the -currently mounted containers. +currently mounted containers, including external containers. External containers are +containers in container/storage by tools other then Podman. For example Buildah and +CRI-O. Rootless mode only supports mounting VFS driver, unless you enter the user namespace via the `podman unshare` command. All other storage drivers will fail to mount. @@ -24,15 +26,15 @@ returned. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** -Mount all containers. +Mount all podman containers. (External containers will not be mounted) -**--format**=*format* +#### **--format**=*format* Print the mounted containers in specified format (json). -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last @@ -40,7 +42,7 @@ started container could be from either of those methods. The latest option is not supported on the remote client. -**--notruncate** +#### **--notruncate** Do not truncate IDs in output. diff --git a/docs/source/markdown/podman-network-connect.1.md b/docs/source/markdown/podman-network-connect.1.md new file mode 100644 index 000000000..58b6e5c44 --- /dev/null +++ b/docs/source/markdown/podman-network-connect.1.md @@ -0,0 +1,34 @@ +% podman-network-connect(1) + +## NAME +podman\-network\-connect - Connect a container to a network + +## SYNOPSIS +**podman network connect** [*options*] network container + +## DESCRIPTION +Connects a container to a network. A container can be connected to a network by name or by ID. +Once connected, the container can communicate with other containers in the same network. + +## OPTIONS +#### **--alias** +Add network-scoped alias for the container. If the network is using the `dnsname` CNI plugin, these aliases +can be used for name resolution on the given network. Multiple *--alias* options may be specificed as input. + +## EXAMPLE + +Connect a container named *web* to a network named *test* +``` +podman network connect test web +``` + +Connect a container name *web* to a network named *test* with two aliases: web1 and web2 +``` +podman network connect --alias web1 --alias web2 test web +``` + +## SEE ALSO +podman(1), podman-network(1), podman-network-disconnect(1), podman-network-inspect(1) + +## HISTORY +November 2020, Originally compiled by Brent Baude <bbaude@redhat.com> diff --git a/docs/source/markdown/podman-network-create.1.md b/docs/source/markdown/podman-network-create.1.md index 45d9d9b0b..cbf9d26dc 100644 --- a/docs/source/markdown/podman-network-create.1.md +++ b/docs/source/markdown/podman-network-create.1.md @@ -17,38 +17,42 @@ If no options are provided, Podman will assign a free subnet and name for your n Upon completion of creating the network, Podman will display the path to the newly added network file. ## OPTIONS -**--disable-dns** +#### **--disable-dns** Disables the DNS plugin for this network which if enabled, can perform container to container name resolution. -**-d**, **--driver** +#### **--driver**, **-d** Driver to manage the network (default "bridge"). Currently only `bridge` is supported. -**--gateway** +#### **--gateway** Define a gateway for the subnet. If you want to provide a gateway address, you must also provide a *subnet* option. -**--internal** +#### **--internal** Restrict external access of this network -**--ip-range** +#### **--ip-range** Allocate container IP from a range. The range must be a complete subnet and in CIDR notation. The *ip-range* option must be used with a *subnet* option. -**--macvlan** +#### **--macvlan** Create a *Macvlan* based connection rather than a classic bridge. You must pass an interface name from the host for the Macvlan connection. -**--subnet** +#### **--subnet** The subnet in CIDR notation. +#### **--ipv6** + +Enable IPv6 (Dual Stack) networking. You must pass a IPv6 subnet. The *subnet* option must be used with the *ipv6* option. + ## EXAMPLE Create a network with no options @@ -63,6 +67,13 @@ Create a network named *newnet* that uses *192.5.0.0/16* for its subnet. /etc/cni/net.d/newnet.conflist ``` +Create an IPv6 network named *newnetv6*, you must specify the subnet for this network, otherwise the command will fail. +For this example, we use *2001:db8::/64* for its subnet. +``` +# podman network create --subnet 2001:db8::/64 --ipv6 newnetv6 +/etc/cni/net.d/newnetv6.conflist +``` + Create a network named *newnet* that uses *192.168.33.0/24* and defines a gateway as *192.168.133.3* ``` # podman network create --subnet 192.168.33.0/24 --gateway 192.168.33.3 newnet diff --git a/docs/source/markdown/podman-network-disconnect.1.md b/docs/source/markdown/podman-network-disconnect.1.md new file mode 100644 index 000000000..95c7018a8 --- /dev/null +++ b/docs/source/markdown/podman-network-disconnect.1.md @@ -0,0 +1,29 @@ +% podman-network-disconnect(1) + +## NAME +podman\-network\-disconnect - Disconnect a container from a network + +## SYNOPSIS +**podman network disconnect** [*options*] network container + +## DESCRIPTION +Disconnects a container from a network. + +## OPTIONS +#### **--force**, **-f** + +Force the container to disconnect from a network + +## EXAMPLE +Disconnect a container named *web* from a network called *test*. + +``` +podman network disconnect test web +``` + + +## SEE ALSO +podman(1), podman-network(1), podman-network-connect(1) + +## HISTORY +November 2020, Originally compiled by Brent Baude <bbaude@redhat.com> diff --git a/docs/source/markdown/podman-network-inspect.1.md b/docs/source/markdown/podman-network-inspect.1.md index c75c6788a..47d647b3f 100644 --- a/docs/source/markdown/podman-network-inspect.1.md +++ b/docs/source/markdown/podman-network-inspect.1.md @@ -10,7 +10,7 @@ podman\-network\-inspect - Displays the raw CNI network configuration for one or Display the raw (JSON format) network configuration. This command is not available for rootless users. ## OPTIONS -**--format**, **-f** +#### **--format**, **-f** Pretty-print networks to JSON or using a Go template. diff --git a/docs/source/markdown/podman-network-ls.1.md b/docs/source/markdown/podman-network-ls.1.md index 7b20cf5e0..34b40b3ae 100644 --- a/docs/source/markdown/podman-network-ls.1.md +++ b/docs/source/markdown/podman-network-ls.1.md @@ -10,15 +10,15 @@ podman\-network\-ls - Display a summary of CNI networks Displays a list of existing podman networks. This command is not available for rootless users. ## OPTIONS -**--quiet**, **-q** +#### **--quiet**, **-q** The `quiet` option will restrict the output to only the network names. -**--format**, **-f** +#### **--format**, **-f** Pretty-print networks to JSON or using a Go template. -**--filter** +#### **--filter** Provide filter values (e.g. 'name=podman'). diff --git a/docs/source/markdown/podman-network-rm.1.md b/docs/source/markdown/podman-network-rm.1.md index 616bb2514..ad4bc11e2 100644 --- a/docs/source/markdown/podman-network-rm.1.md +++ b/docs/source/markdown/podman-network-rm.1.md @@ -10,7 +10,7 @@ podman\-network\-rm - Remove one or more CNI networks Delete one or more Podman networks. ## OPTIONS -**--force**, **-f** +#### **--force**, **-f** The `force` option will remove all containers that use the named network. If the container is running, the container will be stopped and removed. diff --git a/docs/source/markdown/podman-network.1.md b/docs/source/markdown/podman-network.1.md index f05b2b78f..d21b200d9 100644 --- a/docs/source/markdown/podman-network.1.md +++ b/docs/source/markdown/podman-network.1.md @@ -13,7 +13,9 @@ The network command manages CNI networks for Podman. It is not supported for roo | Command | Man Page | Description | | ------- | --------------------------------------------------- | ---------------------------------------------------------------------------- | +| connect | [podman-network-connect(1)](podman-network-connect.1.md)| Connect a container to a network| | create | [podman-network-create(1)](podman-network-create.1.md)| Create a Podman CNI network| +| disconnect | [podman-network-disconnect(1)](podman-network-disconnect.1.md)| Disconnect a container from a network| | inspect | [podman-network-inspect(1)](podman-network-inspect.1.md)| Displays the raw CNI network configuration for one or more networks| | ls | [podman-network-ls(1)](podman-network-ls.1.md)| Display a summary of CNI networks | | rm | [podman-network-rm(1)](podman-network-rm.1.md)| Remove one or more CNI networks | diff --git a/docs/source/markdown/podman-pause.1.md b/docs/source/markdown/podman-pause.1.md index dfd4da416..123362822 100644 --- a/docs/source/markdown/podman-pause.1.md +++ b/docs/source/markdown/podman-pause.1.md @@ -13,7 +13,7 @@ Pauses all the processes in one or more containers. You may use container IDs o ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Pause all running containers. diff --git a/docs/source/markdown/podman-play-kube.1.md b/docs/source/markdown/podman-play-kube.1.md index 97b0dc09a..67584ffcc 100644 --- a/docs/source/markdown/podman-play-kube.1.md +++ b/docs/source/markdown/podman-play-kube.1.md @@ -17,7 +17,7 @@ Note: HostPath volume types created by play kube will be given an SELinux privat ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -25,42 +25,50 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--configmap**=*path* +#### **--configmap**=*path* Use Kubernetes configmap YAML at path to provide a source for environment variable values within the containers of the pod. Note: The *--configmap* option can be used multiple times or a comma-separated list of paths can be used to pass multiple Kubernetes configmap YAMLs. -**--creds** +#### **--creds** The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--network**=*cni networks* +#### **--log-driver**=driver + +Set logging driver for all created containers. + +#### **--network**=*networks*, **--net** A comma-separated list of the names of CNI networks the pod should join. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output information when pulling images -**--seccomp-profile-root**=*path* +#### **--seccomp-profile-root**=*path* Directory path for seccomp profiles (default: "/var/lib/kubelet/seccomp"). (Not available for remote commands) -**--tls-verify**=*true|false* +#### **--start**=*true|false* + +Start the pod after creating it, set to false to only create it. + +#### **--tls-verify**=*true|false* Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, TLS verification will be used unless the target registry is listed as an insecure registry in registries.conf. -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-pod-create.1.md b/docs/source/markdown/podman-pod-create.1.md index 7b0902c19..22eb07bf3 100644 --- a/docs/source/markdown/podman-pod-create.1.md +++ b/docs/source/markdown/podman-pod-create.1.md @@ -15,77 +15,77 @@ containers added to it. The pod id is printed to STDOUT. You can then use ## OPTIONS -**--add-host**=_host_:_ip_ +#### **--add-host**=_host_:_ip_ Add a host to the /etc/hosts file shared between all containers in the pod. -**--cgroup-parent**=*path* +#### **--cgroup-parent**=*path* Path to cgroups under which the cgroup for the pod will be created. If the path is not absolute, the path is considered to be relative to the cgroups path of the init process. Cgroups will be created if they do not already exist. -**--dns**=*ipaddr* +#### **--dns**=*ipaddr* Set custom DNS servers in the /etc/resolv.conf file that will be shared between all containers in the pod. A special option, "none" is allowed which disables creation of /etc/resolv.conf for the pod. -**--dns-opt**=*option* +#### **--dns-opt**=*option* Set custom DNS options in the /etc/resolv.conf file that will be shared between all containers in the pod. -**--dns-search**=*domain* +#### **--dns-search**=*domain* Set custom DNS search domains in the /etc/resolv.conf file that will be shared between all containers in the pod. -**--help** +#### **--help** Print usage statement. -**--hostname**=name +#### **--hostname**=name Set a hostname to the pod -**--infra**=**true**|**false** +#### **--infra**=**true**|**false** Create an infra container and associate it with the pod. An infra container is a lightweight container used to coordinate the shared kernel namespace of a pod. Default: true. -**--infra-conmon-pidfile**=*file* +#### **--infra-conmon-pidfile**=*file* Write the pid of the infra container's **conmon** process to a file. As **conmon** runs in a separate process than Podman, this is necessary when using systemd to manage Podman containers and pods. -**--infra-command**=*command* +#### **--infra-command**=*command* The command that will be run to start the infra container. Default: "/pause". -**--infra-image**=*image* +#### **--infra-image**=*image* The image that will be created for the infra container. Default: "k8s.gcr.io/pause:3.1". -**--ip**=*ipaddr* +#### **--ip**=*ipaddr* Set a static IP for the pod's shared network. -**-l**, **--label**=*label* +#### **--label**=*label*, **-l** Add metadata to a pod (e.g., --label com.example.key=value). -**--label-file**=*label* +#### **--label-file**=*label* Read in a line delimited file of labels. -**--mac-address**=*address* +#### **--mac-address**=*address* Set a static MAC address for the pod's shared network. -**-n**, **--name**=*name* +#### **--name**=*name*, **-n** Assign a name to the pod. -**--network**=*mode* +#### **--network**=*mode*, **--net** Set network mode for the pod. Supported values are -- `bridge`: Create a network stack on the default bridge. This is the default for rootful containers. -- `host`: Do not create a network namespace, all containers in the pod will use the host's network. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure. +- **bridge**: Create a network stack on the default bridge. This is the default for rootful containers. +- **host**: Do not create a network namespace, all containers in the pod will use the host's network. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure. - Comma-separated list of the names of CNI networks the pod should join. -- `slirp4netns[:OPTIONS,...]`: use slirp4netns to create a user network stack. This is the default for rootless containers. It is possible to specify these additional options: +- **slirp4netns[:OPTIONS,...]**: use slirp4netns to create a user network stack. This is the default for rootless containers. It is possible to specify these additional options: - **allow_host_loopback=true|false**: Allow the slirp4netns to reach the host loopback IP (`10.0.2.2`). Default is false. - **cidr=CIDR**: Specify ip range to use for this network. (Default is `10.0.2.0/24`). - **enable_ipv6=true|false**: Enable IPv6. Default is false. (Required for `outbound_addr6`). @@ -96,15 +96,19 @@ Set network mode for the pod. Supported values are - **port_handler=rootlesskit**: Use rootlesskit for port forwarding. Default. - **port_handler=slirp4netns**: Use the slirp4netns port forwarding. -**--no-hosts**=**true**|**false** +#### **--network-alias**=strings + +Add a DNS alias for the container. When the container is joined to a CNI network with support for the dnsname plugin, the container will be accessible through this name from other containers in the network. + +#### **--no-hosts**=**true**|**false** Disable creation of /etc/hosts for the pod. -**--pod-id-file**=*path* +#### **--pod-id-file**=*path* Write the pod ID to the file. -**-p**, **--publish**=*port* +#### **--publish**=*port*, **-p** Publish a port or range of ports from the pod to the host. @@ -115,11 +119,11 @@ Use `podman port` to see the actual mapping: `podman port CONTAINER $CONTAINERPO NOTE: This cannot be modified once the pod is created. -**--replace**=**true**|**false** +#### **--replace**=**true**|**false** If another pod with the same name already exists, replace and remove it. The default is **false**. -**--share**=*namespace* +#### **--share**=*namespace* A comma delimited list of kernel namespaces to share. If none or "" is specified, no namespaces will be shared. The namespaces to choose from are ipc, net, pid, uts. diff --git a/docs/source/markdown/podman-pod-inspect.1.md b/docs/source/markdown/podman-pod-inspect.1.md index bc04b2b32..99cac6f9c 100644 --- a/docs/source/markdown/podman-pod-inspect.1.md +++ b/docs/source/markdown/podman-pod-inspect.1.md @@ -11,14 +11,14 @@ Displays configuration and state information about a given pod. It also display that belong to the pod. ## OPTIONS -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, use the last created pod. If you use methods other than Podman to run pods such as CRI-O, the last started pod could be from either of those methods. The latest option is not supported on the remote client. -**-f**, **--format**=*format* +#### **--format**=*format*, **-f** Change the default output format. This can be of a supported type like 'json' or a Go template. diff --git a/docs/source/markdown/podman-pod-kill.1.md b/docs/source/markdown/podman-pod-kill.1.md index 596e15cea..d791b7cbd 100644 --- a/docs/source/markdown/podman-pod-kill.1.md +++ b/docs/source/markdown/podman-pod-kill.1.md @@ -10,18 +10,18 @@ podman\-pod\-kill - Kill the main process of each container in one or more pods The main process of each container inside the pods specified will be sent SIGKILL, or any signal specified with option --signal. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Sends signal to all containers associated with a pod. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, use the last created pod. If you use methods other than Podman to run pods such as CRI-O, the last started pod could be from either of those methods. The latest option is not supported on the remote client. -**--signal**, **-s** +#### **--signal**, **-s** Signal to send to the containers in the pod. For more information on Linux signals, refer to *man signal(7)*. diff --git a/docs/source/markdown/podman-pod-pause.1.md b/docs/source/markdown/podman-pod-pause.1.md index 9533ed4a1..fc1727737 100644 --- a/docs/source/markdown/podman-pod-pause.1.md +++ b/docs/source/markdown/podman-pod-pause.1.md @@ -11,11 +11,11 @@ Pauses all the running processes in the containers of one or more pods. You may ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Pause all pods. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, pause the last created pod. diff --git a/docs/source/markdown/podman-pod-prune.1.md b/docs/source/markdown/podman-pod-prune.1.md index 5b4c4661c..e90164c15 100644 --- a/docs/source/markdown/podman-pod-prune.1.md +++ b/docs/source/markdown/podman-pod-prune.1.md @@ -11,7 +11,7 @@ podman-pod-prune - Remove all stopped pods and their containers ## OPTIONS -**--force**, **-f** +#### **--force**, **-f** Force removal of all running pods and their containers. The default is false. ## EXAMPLES diff --git a/docs/source/markdown/podman-pod-ps.1.md b/docs/source/markdown/podman-pod-ps.1.md index 3df4403b7..e1d60d765 100644 --- a/docs/source/markdown/podman-pod-ps.1.md +++ b/docs/source/markdown/podman-pod-ps.1.md @@ -26,37 +26,37 @@ By default it lists: ## OPTIONS -**--ctr-names** +#### **--ctr-names** Includes the container names in the container info field -**--ctr-ids** +#### **--ctr-ids** Includes the container IDs in the container info field -**--ctr-status** +#### **--ctr-status** Includes the container statuses in the container info field -**--latest**, **-l** +#### **--latest**, **-l** Show the latest pod created (all states) The latest option is not supported on the remote client. -**--no-trunc** +#### **--no-trunc** Display the extended information -**--ns** +#### **--ns** Display namespace information of the pod -**--quiet**, **-q** +#### **--quiet**, **-q** Print the numeric IDs of the pods only -**--format**=*format* +#### **--format**=*format* Pretty-print containers to JSON or using a Go template @@ -72,29 +72,33 @@ Valid placeholders for the Go template are listed below: | .Cgroup | Cgroup path of pod | | .Created | Creation time of pod | | .InfraID | Pod infra container ID | -**--sort** +#### **--sort** Sort by created, ID, name, status, or number of containers Default: created -**--filter**, **-f**=*filter* +#### **--filter**, **-f**=*filter* -Filter output based on conditions given +Filter output based on conditions given. +Multiple filters can be given with multiple uses of the --filter flag. +Filters with the same key work inclusive with the only exception being +`label` which is exclusive. Filters with different keys always work exclusive. Valid filters are listed below: -| **Filter** | **Description** | -| --------------- | ------------------------------------------------------------------- | -| id | [ID] Pod's ID | -| name | [Name] Pod's name | -| label | [Key] or [Key=Value] Label assigned to a container | -| ctr-names | Container name within the pod | -| ctr-ids | Container ID within the pod | -| ctr-status | Container status within the pod | -| ctr-number | Number of containers in the pod | - -**--help**, **-h** +| **Filter** | **Description** | +| ---------- | ------------------------------------------------------------------------------------- | +| id | [ID] Pod's ID (accepts regex) | +| name | [Name] Pod's name (accepts regex) | +| label | [Key] or [Key=Value] Label assigned to a container | +| status | Pod's status: `stopped`, `running`, `paused`, `exited`, `dead`, `created`, `degraded` | +| ctr-names | Container name within the pod (accepts regex) | +| ctr-ids | Container ID within the pod (accepts regex) | +| ctr-status | Container status within the pod | +| ctr-number | Number of containers in the pod | + +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-pod-restart.1.md b/docs/source/markdown/podman-pod-restart.1.md index 57f479102..19c46b9de 100644 --- a/docs/source/markdown/podman-pod-restart.1.md +++ b/docs/source/markdown/podman-pod-restart.1.md @@ -14,11 +14,11 @@ When restarting multiple pods, an error from restarting one pod will not effect ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Restarts all pods -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, restart the last created pod. diff --git a/docs/source/markdown/podman-pod-rm.1.md b/docs/source/markdown/podman-pod-rm.1.md index dd89694ec..4ca113cf7 100644 --- a/docs/source/markdown/podman-pod-rm.1.md +++ b/docs/source/markdown/podman-pod-rm.1.md @@ -11,27 +11,27 @@ podman\-pod\-rm - Remove one or more stopped pods and containers ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Remove all pods. Can be used in conjunction with \-f as well. -**--ignore**, **-i** +#### **--ignore**, **-i** Ignore errors when specified pods are not in the container store. A user might have decided to manually remove a pod which would lead to a failure during the ExecStop directive of a systemd service referencing that pod. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, remove the last created pod. The latest option is not supported on the remote client. -**--force**, **-f** +#### **--force**, **-f** Stop running containers and delete all stopped containers before removal of pod. -**--pod-id-file** +#### **--pod-id-file** Read pod ID from the specified file and remove the pod. Can be specified multiple times. diff --git a/docs/source/markdown/podman-pod-start.1.md b/docs/source/markdown/podman-pod-start.1.md index 6c6cfa2cf..38117ebe8 100644 --- a/docs/source/markdown/podman-pod-start.1.md +++ b/docs/source/markdown/podman-pod-start.1.md @@ -12,17 +12,17 @@ to be started. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Starts all pods -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, start the last created pod. The latest option is not supported on the remote client. -**--pod-id-file** +#### **--pod-id-file** Read pod ID from the specified file and start the pod. Can be specified multiple times. diff --git a/docs/source/markdown/podman-pod-stats.1.md b/docs/source/markdown/podman-pod-stats.1.md index f70a5a919..b1b23cd06 100644 --- a/docs/source/markdown/podman-pod-stats.1.md +++ b/docs/source/markdown/podman-pod-stats.1.md @@ -11,25 +11,25 @@ Display a live stream of containers in one or more pods resource usage statistic ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Show all containers. Only running containers are shown by default -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, use the last created pod. The latest option is not supported on the remote client. -**--no-reset** +#### **--no-reset** Do not clear the terminal/screen in between reporting intervals -**--no-stream** +#### **--no-stream** Disable streaming pod stats and only pull the first result, default setting is false -**--format**=*template* +#### **--format**=*template* Pretty-print container statistics to JSON or using a Go template diff --git a/docs/source/markdown/podman-pod-stop.1.md b/docs/source/markdown/podman-pod-stop.1.md index 7ce9ff941..df1b36fc4 100644 --- a/docs/source/markdown/podman-pod-stop.1.md +++ b/docs/source/markdown/podman-pod-stop.1.md @@ -11,27 +11,27 @@ Stop containers in one or more pods. You may use pod IDs or names as input. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Stops all pods -**--ignore**, **-i** +#### **--ignore**, **-i** Ignore errors when specified pods are not in the container store. A user might have decided to manually remove a pod which would lead to a failure during the ExecStop directive of a systemd service referencing that pod. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, stop the last created pod. The latest option is not supported on the remote client. -**--time**, **-t**=*time* +#### **--time**, **-t**=*time* Timeout to wait before forcibly stopping the containers in the pod. -**--pod-id-file** +#### **--pod-id-file** Read pod ID from the specified file and stop the pod. Can be specified multiple times. diff --git a/docs/source/markdown/podman-pod-top.1.md b/docs/source/markdown/podman-pod-top.1.md index 1f2ffd662..80334ebd0 100644 --- a/docs/source/markdown/podman-pod-top.1.md +++ b/docs/source/markdown/podman-pod-top.1.md @@ -11,11 +11,11 @@ Display the running processes of containers in a pod. The *format-descriptors* a ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, use the last created pod. diff --git a/docs/source/markdown/podman-pod-unpause.1.md b/docs/source/markdown/podman-pod-unpause.1.md index e0a88c2e3..0b3c2d384 100644 --- a/docs/source/markdown/podman-pod-unpause.1.md +++ b/docs/source/markdown/podman-pod-unpause.1.md @@ -11,11 +11,11 @@ Unpauses all the paused processes in the containers of one or more pods. You ma ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Unpause all pods. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the pod name or ID, unpause the last created pod. diff --git a/docs/source/markdown/podman-port.1.md b/docs/source/markdown/podman-port.1.md index c9833f447..9d56d5e8c 100644 --- a/docs/source/markdown/podman-port.1.md +++ b/docs/source/markdown/podman-port.1.md @@ -13,12 +13,12 @@ List port mappings for the *container* or lookup the public-facing port that is ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** List all known port mappings for running containers. When using this option, you cannot pass any container names or private ports/protocols as filters. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. diff --git a/docs/source/markdown/podman-ps.1.md b/docs/source/markdown/podman-ps.1.md index 90f147222..b94964f6c 100644 --- a/docs/source/markdown/podman-ps.1.md +++ b/docs/source/markdown/podman-ps.1.md @@ -6,15 +6,11 @@ podman\-ps - Prints out information about containers ## SYNOPSIS **podman ps** [*options*] -**podman container list** [*options*] - -**podman container ls** [*options*] - **podman container ps** [*options*] -**podman list** [*options*] +**podman container list** [*options*] -**podman ls** [*options*] +**podman container ls** [*options*] ## DESCRIPTION **podman ps** lists the running containers on the system. Use the **--all** flag to view @@ -30,29 +26,29 @@ all the containers information. By default it lists: ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Show all the containers created by Podman, default is only running containers. Note: Podman shares containers storage with other tools such as Buildah and CRI-O. In some cases these `external` containers might also exist in the same storage. Use the `--external` option to see these external containers. External containers show the 'storage' status. -**--external** +#### **--external** Display external containers that are not controlled by Podman but are stored in containers storage. These external containers are generally created via other container technology such as Buildah or CRI-O and may depend on the same container images that Podman is also using. External containers are denoted with either a 'buildah' or 'storage' in the COMMAND and STATUS column of the ps output. Only used with the --all option. -**--filter**, **-f** +#### **--filter**, **-f** Filter what containers are shown in the output. Multiple filters can be given with multiple uses of the --filter flag. -If multiple filters are given, only containers which match all of the given filters will be shown. -Results will be drawn from all containers, regardless of whether --all was given. +Filters with the same key work inclusive with the only exception being +`label` which is exclusive. Filters with different keys always work exclusive. Valid filters are listed below: | **Filter** | **Description** | | --------------- | -------------------------------------------------------------------------------- | -| id | [ID] Container's ID | -| name | [Name] Container's name | +| id | [ID] Container's ID (accepts regex) | +| name | [Name] Container's name (accepts regex) | | label | [Key] or [Key=Value] Label assigned to a container | | exited | [Int] Container's exit code | | status | [Status] Container's status: 'created', 'exited', 'paused', 'running', 'unknown' | @@ -62,7 +58,7 @@ Valid filters are listed below: | volume | [VolumeName] or [MountpointDestination] Volume mounted in container | | health | [Status] healthy or unhealthy | -**--format**=*format* +#### **--format**=*format* Pretty-print containers to JSON or using a Go template @@ -84,54 +80,54 @@ Valid placeholders for the Go template are listed below: | .Labels | All the labels assigned to the container | | .Mounts | Volumes mounted in the container | -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--last**, **-n** +#### **--last**, **-n** Print the n last created containers (all states) -**--latest**, **-l** +#### **--latest**, **-l** Show the latest container created (all states) The latest option is not supported on the remote client. -**--namespace**, **--ns** +#### **--namespace**, **--ns** Display namespace information -**--no-trunc** +#### **--no-trunc** Display the extended information -**--pod**, **-p** +#### **--pod**, **-p** Display the pods the containers are associated with -**--quiet**, **-q** +#### **--quiet**, **-q** Print the numeric IDs of the containers only -**--sort** +#### **--sort** Sort by command, created, id, image, names, runningfor, size, or status", Note: Choosing size will sort by size of rootFs, not alphabetically like the rest of the options Default: created -**--size**, **-s** +#### **--size**, **-s** Display the total file size -**--sync** +#### **--sync** Force a sync of container state with the OCI runtime. In some cases, a container's state in the runtime can become out of sync with Podman's state. This will update Podman's state based on what the OCI runtime reports. Forcibly syncing is much slower, but can resolve inconsistent state issues. -**--watch**, **-w** +#### **--watch**, **-w** Refresh the output with current containers on an interval in seconds. diff --git a/docs/source/markdown/podman-pull.1.md b/docs/source/markdown/podman-pull.1.md index 46beb4c42..130c54ba9 100644 --- a/docs/source/markdown/podman-pull.1.md +++ b/docs/source/markdown/podman-pull.1.md @@ -48,13 +48,13 @@ Images are stored in local image storage. ## OPTIONS -**--all-tags**, **a** +#### **--all-tags**, **a** All tagged images in the repository will be pulled. Note: When using the all-tags flag, Podman will not iterate over the search registries in the containers-registries.conf(5) but will always use docker.io for unqualified image names. -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -62,44 +62,44 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--creds**=*[username[:password]]* +#### **--creds**=*[username[:password]]* The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--disable-content-trust** +#### **--disable-content-trust** This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman. This flag is a NOOP and provided solely for scripting compatibility. -**--override-arch**=*ARCH* +#### **--override-arch**=*ARCH* Override the architecture, defaults to hosts, of the image to be pulled. For example, `arm`. -**--override-os**=*OS* +#### **--override-os**=*OS* Override the OS, defaults to hosts, of the image to be pulled. For example, `windows`. -**--override-variant**=*VARIANT* +#### **--override-variant**=*VARIANT* Use _VARIANT_ instead of the default architecture variant of the container image. Some images can use multiple variants of the arm architectures, such as arm/v5 and arm/v7. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output information when pulling images -**--tls-verify**=*true|false* +#### **--tls-verify**=*true|false* Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, TLS verification will be used unless the target registry is listed as an insecure registry in registries.conf. -**--help**, **-h** +#### **--help**, **-h** Print usage statement @@ -120,6 +120,17 @@ Storing signatures ``` ``` +$ podman pull alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e +Trying to pull docker.io/library/alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e... +Getting image source signatures +Copying blob 188c0c94c7c5 done +Copying config d6e46aa247 done +Writing manifest to image destination +Storing signatures +d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0 +``` + +``` $ podman pull --authfile temp-auths/myauths.json docker://docker.io/umohnani/finaltest Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913 diff --git a/docs/source/markdown/podman-push.1.md b/docs/source/markdown/podman-push.1.md index e9b63dc43..87e64858c 100644 --- a/docs/source/markdown/podman-push.1.md +++ b/docs/source/markdown/podman-push.1.md @@ -43,7 +43,7 @@ Images are pushed from those stored in local image storage. ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. @@ -51,50 +51,50 @@ If the authorization state is not found there, $HOME/.docker/config.json is chec Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--creds**=*[username[:password]]* +#### **--creds**=*[username[:password]]* The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered. The password is entered without echo. -**--cert-dir**=*path* +#### **--cert-dir**=*path* Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands) -**--compress** +#### **--compress** Compress tarball image layers when pushing to a directory using the 'dir' transport. (default is same compression type, compressed or uncompressed, as source) Note: This flag can only be set when using the **dir** transport -**--digestfile** *Digestfile* +#### **--digestfile** *Digestfile* After copying the image, write the digest of the resulting image to the file. (Not available for remote commands) -**--disable-content-trust** +#### **--disable-content-trust** This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman. This flag is a NOOP and provided solely for scripting compatibility. -**--format**, **-f**=*format* +#### **--format**, **-f**=*format* Manifest Type (oci, v2s1, or v2s2) to use when pushing an image to a directory using the 'dir:' transport (default is manifest type of source) Note: This flag can only be set when using the **dir** transport -**--quiet**, **-q** +#### **--quiet**, **-q** When writing the output image, suppress progress output -**--remove-signatures** +#### **--remove-signatures** Discard any pre-existing signatures in the image -**--sign-by**=*key* +#### **--sign-by**=*key* Add a signature at the destination using the specified key -**--tls-verify**=*true|false* +#### **--tls-verify**=*true|false* Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, diff --git a/docs/source/markdown/podman-remote.1.md b/docs/source/markdown/podman-remote.1.md index b621c846a..1a6c7d3cc 100644 --- a/docs/source/markdown/podman-remote.1.md +++ b/docs/source/markdown/podman-remote.1.md @@ -25,15 +25,15 @@ The `containers.conf` file should be placed under `$HOME/.config/containers/cont ## GLOBAL OPTIONS -**--connection**=*name*, **-c** +#### **--connection**=*name*, **-c** Remote connection name -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--identity**=*path* +#### **--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. @@ -44,11 +44,11 @@ Identity value resolution precedence: - environment variable `CONTAINER_SSHKEY`, if `CONTAINER_HOST` is found - `containers.conf` -**--log-level**=*level* +#### **--log-level**=*level* Log messages above specified level: debug, info, warn, error (default), fatal or panic -**--url**=*value* +#### **--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). @@ -67,7 +67,7 @@ URL value resolution precedence: - `containers.conf` - `unix://run/podman/podman.sock` -**--version** +#### **--version** Print the version diff --git a/docs/source/markdown/podman-restart.1.md b/docs/source/markdown/podman-restart.1.md index 127aaa074..acca0ccfe 100644 --- a/docs/source/markdown/podman-restart.1.md +++ b/docs/source/markdown/podman-restart.1.md @@ -14,19 +14,19 @@ Containers will be stopped if they are running and then restarted. Stopped containers will not be stopped and will only be started. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Restart all containers regardless of their current state. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--running** +#### **--running** Restart all containers that are already in the *running* state. -**-t**, **--time**=*time* +#### **--time**=*time*, **-t** Timeout to wait before forcibly stopping the container. diff --git a/docs/source/markdown/podman-rm.1.md b/docs/source/markdown/podman-rm.1.md index 36904a128..cba9a0b49 100644 --- a/docs/source/markdown/podman-rm.1.md +++ b/docs/source/markdown/podman-rm.1.md @@ -14,15 +14,15 @@ Running or unusable containers will not be removed without the **-f** option. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Remove all containers. Can be used in conjunction with **-f** as well. -**--cidfile** +#### **--cidfile** Read container ID from the specified file and remove the container. Can be specified multiple times. -**--force**, **-f** +#### **--force**, **-f** Force the removal of running and paused containers. Forcing a container removal also removes containers from container storage even if the container is not known to podman. @@ -30,20 +30,20 @@ Containers could have been created by a different container engine. In addition, forcing can be used to remove unusable containers, e.g. containers whose OCI runtime has become unavailable. -**--ignore**, **-i** +#### **--ignore**, **-i** Ignore errors when specified containers are not in the container store. A user might have decided to manually remove a container which would lead to a failure during the ExecStop directive of a systemd service referencing that container. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--volumes**, **-v** +#### **--volumes**, **-v** Remove anonymous volumes associated with the container. This does not include named volumes created with **podman volume create**, or the **--volume** option of **podman run** and **podman create**. diff --git a/docs/source/markdown/podman-rmi.1.md b/docs/source/markdown/podman-rmi.1.md index 27fe3b235..765c1bd6d 100644 --- a/docs/source/markdown/podman-rmi.1.md +++ b/docs/source/markdown/podman-rmi.1.md @@ -13,11 +13,11 @@ Removes one or more locally stored images. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Remove all images in the local storage. -**--force**, **-f** +#### **--force**, **-f** This option will cause podman to remove all containers that are using the image before removing the image from the system. diff --git a/docs/source/markdown/podman-run.1.md b/docs/source/markdown/podman-run.1.md index aad179957..184c12acd 100644 --- a/docs/source/markdown/podman-run.1.md +++ b/docs/source/markdown/podman-run.1.md @@ -33,18 +33,22 @@ is located at _/run/.containerenv_. When running from a user defined network namespace, the _/etc/netns/NSNAME/resolv.conf_ will be used if it exists, otherwise _/etc/resolv.conf_ will be used. +Default settings are defined in `containers.conf`. Most settings for remote +connections use the servers containers.conf, except when documented in man +pages. + ## OPTIONS -**--add-host**=_host_:_ip_ +#### **--add-host**=_host_:_ip_ Add a line to container's _/etc/hosts_ for custom host-to-IP mapping. This option can be set multiple times. -**--annotation**=_key_=_value_ +#### **--annotation**=_key_=_value_ Add an annotation to the container. This option can be set multiple times. -**--attach**, **-a**=**stdin**|**stdout**|**stderr** +#### **--attach**, **-a**=**stdin**|**stdout**|**stderr** Attach to STDIN, STDOUT or STDERR. @@ -55,30 +59,30 @@ error. It can even pretend to be a TTY (this is what most commandline executables expect) and pass along signals. The **-a** option can be set for each of **stdin**, **stdout**, and **stderr**. -**--authfile**[=*path*] +#### **--authfile**[=*path*] Path to the authentication file. Default is *${XDG_RUNTIME_DIR}/containers/auth.json*. Note: You can also override the default path of the authentication file by setting the **REGISTRY_AUTH_FILE** environment variable. -**--blkio-weight**=*weight* +#### **--blkio-weight**=*weight* Block IO relative weight. The _weight_ is a value between **10** and **1000**. -**--blkio-weight-device**=*device*:*weight* +#### **--blkio-weight-device**=*device*:*weight* Block IO relative device weight. -**--cap-add**=*capability* +#### **--cap-add**=*capability* Add Linux capabilities. -**--cap-drop**=*capability* +#### **--cap-drop**=*capability* Drop Linux capabilities. -**--cgroupns**=*mode* +#### **--cgroupns**=*mode* Set the cgroup namespace mode for the container. @@ -89,7 +93,7 @@ Set the cgroup namespace mode for the container. If the host uses cgroups v1, the default is set to **host**. On cgroups v2, the default is **private**. -**--cgroups**=**enabled**|**disabled**|**no-conmon**|**split** +#### **--cgroups**=**enabled**|**disabled**|**no-conmon**|**split** Determines whether the container will create CGroups. @@ -100,23 +104,23 @@ The **disabled** option will force the container to not create CGroups, and thus The **no-conmon** option disables a new CGroup only for the **conmon** process. The **split** option splits the current cgroup in two sub-cgroups: one for conmon and one for the container payload. It is not possible to set **--cgroup-parent** with **split**. -**--cgroup-parent**=*path* +#### **--cgroup-parent**=*path* Path to cgroups under which the cgroup for the container will be created. If the path is not absolute, the path is considered to be relative to the cgroups path of the init process. Cgroups will be created if they do not already exist. -**--cgroup-conf**=*KEY=VALUE* +#### **--cgroup-conf**=*KEY=VALUE* When running on cgroup v2, specify the cgroup file to write to and its value. For example **--cgroup-conf=memory.high=1073741824** sets the memory.high limit to 1GB. -**--cidfile**=*file* +#### **--cidfile**=*file* Write the container ID to *file*. -**--conmon-pidfile**=*file* +#### **--conmon-pidfile**=*file* Write the pid of the **conmon** process to a file. As **conmon** runs in a separate process than Podman, this is necessary when using systemd to restart Podman containers. -**--cpu-period**=*limit* +#### **--cpu-period**=*limit* Set the CPU period for the Completely Fair Scheduler (CFS), which is a duration in microseconds. Once the container's CPU quota is used up, it will @@ -127,7 +131,7 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-quota**=*limit* +#### **--cpu-quota**=*limit* Limit the CPU Completely Fair Scheduler (CFS) quota. @@ -140,13 +144,13 @@ On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpu-rt-period**=*microseconds* +#### **--cpu-rt-period**=*microseconds* Limit the CPU real-time period in microseconds. Limit the container's Real Time CPU usage. This flag tell the kernel to restrict the container's Real Time CPU usage to the period you specify. -**--cpu-rt-runtime**=*microseconds* +#### **--cpu-rt-runtime**=*microseconds* Limit the CPU real-time runtime in microseconds. @@ -155,7 +159,7 @@ Period of 1,000,000us and Runtime of 950,000us means that this container could c The sum of all runtimes across containers cannot exceed the amount allotted to the parent cgroup. -**--cpu-shares**=*shares* +#### **--cpu-shares**=*shares* CPU shares (relative weight). @@ -190,30 +194,30 @@ division of CPU shares: | 101 | {C1} | 1 | 100% of CPU1 | | 102 | {C1} | 2 | 100% of CPU2 | -**--cpus**=*number* +#### **--cpus**=*number* Number of CPUs. The default is *0.0* which means no limit. This is shorthand for **--cpu-period** and **--cpu-quota**, so you may only set either -**--cpus** or **--cpu-period** and **--cpu-quota**. +#### **--cpus** or **--cpu-period** and **--cpu-quota**. On some systems, changing the CPU limits may not be allowed for non-root users. For more details, see https://github.com/containers/podman/blob/master/troubleshooting.md#26-running-containers-with-cpu-limits-fails-with-a-permissions-error -**--cpuset-cpus**=*number* +#### **--cpuset-cpus**=*number* CPUs in which to allow execution. Can be specified as a comma-separated list (e.g. **0,1**), as a range (e.g. **0-3**), or any combination thereof (e.g. **0-3,7,11-15**). -**--cpuset-mems**=*nodes* +#### **--cpuset-mems**=*nodes* Memory nodes (MEMs) in which to allow execution. Only effective on NUMA systems. For example, if you have four memory nodes (0-3) on your system, use **--cpuset-mems=0,1** to only use memory from the first two memory nodes. -**--detach**, **-d**=**true**|**false** +#### **--detach**, **-d**=**true**|**false** Detached mode: run the container in the background and print the new container ID. The default is *false*. @@ -226,7 +230,7 @@ running) using a configurable key sequence. The default sequence is `ctrl-p,ctrl Configure the keys sequence using the **--detach-keys** option, or specifying it in the **containers.conf** file: see **containers.conf(5)** for more information. -**--detach-keys**=*sequence* +#### **--detach-keys**=*sequence* Specify the key sequence for detaching a container. Format is a single character `[a-Z]` or one or more `ctrl-<value>` characters where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`. Specifying "" will disable this feature. The default is *ctrl-p,ctrl-q*. @@ -234,7 +238,7 @@ This option can also be set in **containers.conf**(5) file. Specifying "" will disable this feature. The default is **ctrl-p,ctrl-q**. -**--device**=_host-device_[**:**_container-device_][**:**_permissions_] +#### **--device**=_host-device_[**:**_container-device_][**:**_permissions_] Add a host device to the container. Optional *permissions* parameter can be used to specify device permissions, it is combination of @@ -253,33 +257,33 @@ Podman may load kernel modules required for using the specified device. The devices that podman will load modules when necessary are: /dev/fuse. -**--device-cgroup-rule**=rule +#### **--device-cgroup-rule**=rule Add a rule to the cgroup allowed devices list -**--device-read-bps**=_path_:_rate_ +#### **--device-read-bps**=_path_:_rate_ Limit read rate (in bytes per second) from a device (e.g. **--device-read-bps=/dev/sda:1mb**). -**--device-read-iops**=_path_:_rate_ +#### **--device-read-iops**=_path_:_rate_ Limit read rate (in IO operations per second) from a device (e.g. **--device-read-iops=/dev/sda:1000**). -**--device-write-bps**=_path_:_rate_ +#### **--device-write-bps**=_path_:_rate_ Limit write rate (in bytes per second) to a device (e.g. **--device-write-bps=/dev/sda:1mb**). -**--device-write-iops**=_path_:_rate_ +#### **--device-write-iops**=_path_:_rate_ Limit write rate (in IO operations per second) to a device (e.g. **--device-write-iops=/dev/sda:1000**). -**--disable-content-trust** +#### **--disable-content-trust** This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman. This flag is a NOOP and provided solely for scripting compatibility. -**--dns**=*ipaddr* +#### **--dns**=*ipaddr* Set custom DNS servers. Invalid if using **--dns** with **--network** that is set to **none** or **container:**_id_. @@ -291,16 +295,16 @@ is the case the **--dns** flags is necessary for every run. The special value **none** can be specified to disable creation of _/etc/resolv.conf_ in the container by Podman. The _/etc/resolv.conf_ file in the image will be used without changes. -**--dns-opt**=*option* +#### **--dns-opt**=*option* Set custom DNS options. Invalid if using **--dns-opt** with **--network** that is set to **none** or **container:**_id_. -**--dns-search**=*domain* +#### **--dns-search**=*domain* Set custom DNS search domains. Invalid if using **--dns-search** and **--network** that is set to **none** or **container:**_id_. Use **--dns-search=.** if you don't wish to set the search domain. -**--entrypoint**=*"command"* | *'["command", "arg1", ...]'* +#### **--entrypoint**=*"command"* | *'["command", "arg1", ...]'* Overwrite the default ENTRYPOINT of the image. @@ -318,7 +322,7 @@ ENTRYPOINT. You need to specify multi option commands in the form of a json string. -**--env**, **-e**=*env* +#### **--env**, **-e**=*env* Set environment variables. @@ -326,30 +330,30 @@ This option allows arbitrary environment variables that are available for the pr See [**Environment**](#environment) note below for precedence and examples. -**--env-host**=**true**|**false** +#### **--env-host**=**true**|**false** Use host environment inside of the container. See **Environment** note below for precedence. (Not available for remote commands) -**--env-file**=*file* +#### **--env-file**=*file* Read in a line delimited file of environment variables. See **Environment** note below for precedence. -**--expose**=*port* +#### **--expose**=*port* Expose a port, or a range of ports (e.g. **--expose=3300-3310**) to set up port redirection on the host system. -**--gidmap**=*container_gid*:*host_gid*:*amount* +#### **--gidmap**=*container_gid*:*host_gid*:*amount* Run the container in a new user namespace using the supplied mapping. This option conflicts with the **--userns** and **--subgidname** flags. This option can be passed several times to map different ranges. If calling **podman run** as an unprivileged user, the user needs to have the right to use the mapping. See **subuid**(5). The example maps gids **0-1999** in the container to the gids **30000-31999** on the host: **--gidmap=0:30000:2000**. -**--group-add**=*group* +#### **--group-add**=*group* Add additional groups to run as -**--health-cmd**=*"command"* | *'["command", "arg1", ...]'* +#### **--health-cmd**=*"command"* | *'["command", "arg1", ...]'* Set or alter a healthcheck command for a container. The command is a command to be executed inside your container that determines your container health. The command is required for other healthcheck options @@ -358,35 +362,35 @@ to be applied. A value of **none** disables existing healthchecks. Multiple options can be passed in the form of a JSON array; otherwise, the command will be interpreted as an argument to **/bin/sh -c**. -**--health-interval**=*interval* +#### **--health-interval**=*interval* Set an interval for the healthchecks. An _interval_ of **disable** results in no automatic timer setup. The default is **30s**. -**--health-retries**=*retries* +#### **--health-retries**=*retries* The number of retries allowed before a healthcheck is considered to be unhealthy. The default value is **3**. -**--health-start-period**=*period* +#### **--health-start-period**=*period* The initialization time needed for a container to bootstrap. The value can be expressed in time format like **2m3s**. The default value is **0s**. -**--health-timeout**=*timeout* +#### **--health-timeout**=*timeout* The maximum time allowed to complete the healthcheck before an interval is considered failed. Like start-period, the value can be expressed in a time format such as **1m22s**. The default value is **30s**. -**--help** +#### **--help** Print usage statement -**-h**, **--hostname**=*name* +#### **--hostname**=*name*, **-h** Container host name -Sets the container host name that is available inside the container. Can only be used with a private UTS namespace `--uts=private` (default). If `--pod` is specified and the pod shares the UTS namespace (default) the pods hostname will be used. +Sets the container host name that is available inside the container. Can only be used with a private UTS namespace `--uts=private` (default). If `--pod` is specified and the pod shares the UTS namespace (default) the pod's hostname will be used. -**--http-proxy**=**true**|**false** +#### **--http-proxy**=**true**|**false** By default proxy environment variables are passed into the container if set for the Podman process. This can be disabled by setting the value to **false**. @@ -401,7 +405,7 @@ proxy environment at container build time.) (Not available for remote commands) Defaults to **true**. -**--image-volume**, **builtin-volume**=**bind**|**tmpfs**|**ignore** +#### **--image-volume**, **builtin-volume**=**bind**|**tmpfs**|**ignore** Tells Podman how to handle the builtin image volumes. Default is **bind**. @@ -410,30 +414,30 @@ Tells Podman how to handle the builtin image volumes. Default is **bind**. content that disappears when the container is stopped. - **ignore**: All volumes are just ignored and no action is taken. -**--init** +#### **--init** Run an init inside the container that forwards signals and reaps processes. -**--init-path**=*path* +#### **--init-path**=*path* Path to the container-init binary. -**--interactive**, **-i**=**true**|**false** +#### **--interactive**, **-i**=**true**|**false** When set to **true**, keep stdin open even if not attached. The default is **false**. -**--ip6**=*ip* +#### **--ip6**=*ip* Not implemented. -**--ip**=*ip* +#### **--ip**=*ip* Specify a static IP address for the container, for example **10.88.64.128**. This option can only be used if the container is joined to only a single network - i.e., `--network=_network-name_` is used at most once and if the container is not joining another container's network namespace via `--network=container:_id_`. The address must be within the CNI network's IP address pool (default **10.88.0.0/16**). -**--ipc**=*mode* +#### **--ipc**=*mode* Set the IPC namespace mode for a container. The default is to create a private IPC namespace. @@ -442,7 +446,7 @@ a private IPC namespace. - **host**: use the host shared memory,semaphores and message queues inside the container. Note: the host mode gives the container full access to local shared memory and is therefore considered insecure. - **ns:**_path_: path to an IPC namespace to join. -**--kernel-memory**=_number_[_unit_] +#### **--kernel-memory**=_number_[_unit_] Kernel memory limit. A _unit_ can be **b** (bytes), **k** (kilobytes), **m** (megabytes), or **g** (gigabytes). @@ -452,23 +456,23 @@ is not limited. If you specify a limit, it may be rounded up to a multiple of the operating system's page size and the value can be very large, millions of trillions. -**--label**, **-l**=*key*=*value* +#### **--label**, **-l**=*key*=*value* Add metadata to a container. -**--label-file**=*file* +#### **--label-file**=*file* Read in a line-delimited file of labels. -**--link-local-ip**=*ip* +#### **--link-local-ip**=*ip* Not implemented. -**--log-driver**="*driver*" +#### **--log-driver**="*driver*" Logging driver for the container. Currently available options are **k8s-file**, **journald**, and **none**, with **json-file** aliased to **k8s-file** for scripting compatibility. -**--log-opt**=*name*=*value* +#### **--log-opt**=*name*=*value* Logging driver specific options. @@ -485,7 +489,7 @@ Set custom logging configuration. The following *name*s are supported: This option is currently supported only by the **journald** log driver. -**--mac-address**=*address* +#### **--mac-address**=*address* Container MAC address (e.g. **92:d0:c6:0a:29:33**). @@ -493,7 +497,7 @@ Remember that the MAC address in an Ethernet network must be unique. The IPv6 link-local address will be based on the device's MAC address according to RFC4862. -**--memory**, **-m**=_number_[_unit_] +#### **--memory**, **-m**=_number_[_unit_] Memory limit. A _unit_ can be **b** (bytes), **k** (kilobytes), **m** (megabytes), or **g** (gigabytes). @@ -503,7 +507,7 @@ RAM. If a limit of 0 is specified (not using **-m**), the container's memory is not limited. The actual limit may be rounded up to a multiple of the operating system's page size (the value would be very large, that's millions of trillions). -**--memory-reservation**=_number_[_unit_] +#### **--memory-reservation**=_number_[_unit_] Memory soft limit. A _unit_ can be **b** (bytes), **k** (kilobytes), **m** (megabytes), or **g** (gigabytes). @@ -513,7 +517,7 @@ reservation. So you should always set the value below **--memory**, otherwise th hard limit will take precedence. By default, memory reservation will be the same as memory limit. -**--memory-swap**=_number_[_unit_] +#### **--memory-swap**=_number_[_unit_] A limit value equal to memory plus swap. A _unit_ can be **b** (bytes), **k** (kilobytes), **m** (megabytes), or **g** (gigabytes). @@ -525,15 +529,15 @@ the value of **--memory**. Set _number_ to **-1** to enable unlimited swap. -**--memory-swappiness**=*number* +#### **--memory-swappiness**=*number* Tune a container's memory swappiness behavior. Accepts an integer between *0* and *100*. -**--mount**=*type=TYPE,TYPE-SPECIFIC-OPTION[,...]* +#### **--mount**=*type=TYPE,TYPE-SPECIFIC-OPTION[,...]* Attach a filesystem mount to the container -Current supported mount TYPEs are **bind**, **volume**, **tmpfs** and **devpts**. <sup>[[1]](#Footnote1)</sup> +Current supported mount TYPEs are **bind**, **volume**, **image**, **tmpfs** and **devpts**. <sup>[[1]](#Footnote1)</sup> e.g. @@ -545,6 +549,8 @@ Current supported mount TYPEs are **bind**, **volume**, **tmpfs** and **devpts** type=tmpfs,tmpfs-size=512M,destination=/path/in/container + type=image,source=fedora,destination=/fedora-image,rw=true + type=devpts,destination=/dev/pts Common Options: @@ -553,11 +559,19 @@ Current supported mount TYPEs are **bind**, **volume**, **tmpfs** and **devpts** · dst, destination, target: mount destination spec. + Options specific to volume: + · ro, readonly: true or false (default). + Options specific to image: + + · rw, readwrite: true or false (default). + Options specific to bind: - · bind-propagation: shared, slave, private, rshared, rslave, or rprivate(default). See also mount(2). + · ro, readonly: true or false (default). + + · bind-propagation: shared, slave, private, unbindable, rshared, rslave, runbindable, or rprivate(default). See also mount(2). . bind-nonrecursive: do not setup a recursive bind mount. By default it is recursive. @@ -565,6 +579,8 @@ Current supported mount TYPEs are **bind**, **volume**, **tmpfs** and **devpts** Options specific to tmpfs: + · ro, readonly: true or false (default). + · tmpfs-size: Size of the tmpfs mount in bytes. Unlimited by default in Linux. · tmpfs-mode: File mode of the tmpfs in octal. (e.g. 700 or 0700.) Defaults to 1777 in Linux. @@ -573,7 +589,7 @@ Current supported mount TYPEs are **bind**, **volume**, **tmpfs** and **devpts** · notmpcopyup: Disable copying files from the image to the tmpfs. -**--name**=*name* +#### **--name**=*name* Assign a name to the container. @@ -588,9 +604,9 @@ to the container with **--name** then it will generate a random string name. The name is useful any place you need to identify a container. This works for both background and foreground containers. -**--network**, **--net**=*mode* +#### **--network**=*mode*, **--net** -Set the network mode for the container. Invalid if using **--dns**, **--dns-opt**, or **--dns-search** with **--network** that is set to **none** or **container:**_id_. +Set the network mode for the container. Invalid if using **--dns**, **--dns-opt**, or **--dns-search** with **--network** that is set to **none** or **container:**_id_. If used together with **--pod**, the container will not join the pods network namespace. Valid _mode_ values are: @@ -598,9 +614,9 @@ Valid _mode_ values are: - **none**: no networking; - **container:**_id_: reuse another container's network stack; - **host**: use the Podman host network stack. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure; -- _network-id_: connect to a user-defined network, multiple networks should be comma separated; +- **cni-network**: connect to a user-defined network, multiple networks should be comma-separated or they can be specified with multiple uses of the **--network** option; - **ns:**_path_: path to a network namespace to join; -- `private`: create a new namespace for the container (default) +- **private**: create a new namespace for the container (default) - **slirp4netns[:OPTIONS,...]**: use **slirp4netns**(1) to create a user network stack. This is the default for rootless containers. It is possible to specify these additional options: - **allow_host_loopback=true|false**: Allow the slirp4netns to reach the host loopback IP (`10.0.2.2`). Default is false. - **cidr=CIDR**: Specify ip range to use for this network. (Default is `10.0.2.0/24`). @@ -612,40 +628,40 @@ Valid _mode_ values are: - **port_handler=rootlesskit**: Use rootlesskit for port forwarding. Default. - **port_handler=slirp4netns**: Use the slirp4netns port forwarding. -**--network-alias**=*alias* +#### **--network-alias**=*alias* -Not implemented. +Add network-scoped alias for the container -**--no-healthcheck**=*true|false* +#### **--no-healthcheck**=*true|false* Disable any defined healthchecks for container. -**--no-hosts**=**true**|**false** +#### **--no-hosts**=**true**|**false** Do not create _/etc/hosts_ for the container. By default, Podman will manage _/etc/hosts_, adding the container's own IP address and any hosts from **--add-host**. -**--no-hosts** disables this, and the image's _/etc/hosts_ will be preserved unmodified. +#### **--no-hosts** disables this, and the image's _/etc/hosts_ will be preserved unmodified. This option conflicts with **--add-host**. -**--oom-kill-disable**=**true**|**false** +#### **--oom-kill-disable**=**true**|**false** Whether to disable OOM Killer for the container or not. -**--oom-score-adj**=*num* +#### **--oom-score-adj**=*num* Tune the host's OOM preferences for containers (accepts values from **-1000** to **1000**). -**--override-arch**=*ARCH* +#### **--override-arch**=*ARCH* Override the architecture, defaults to hosts, of the image to be pulled. For example, `arm`. -**--override-os**=*OS* +#### **--override-os**=*OS* Override the OS, defaults to hosts, of the image to be pulled. For example, `windows`. -**--override-variant**=*VARIANT* +#### **--override-variant**=*VARIANT* Use _VARIANT_ instead of the default architecture variant of the container image. Some images can use multiple variants of the arm architectures, such as arm/v5 and arm/v7. -**--pid**=*mode* +#### **--pid**=*mode* Set the PID namespace mode for the container. The efault is to create a private PID namespace for the container. @@ -655,25 +671,25 @@ The efault is to create a private PID namespace for the container. - **private**: create a new namespace for the container (default) - **ns:**_path_: join the specified PID namespace. -**--pids-limit**=*limit* +#### **--pids-limit**=*limit* Tune the container's pids limit. Set to **0** to have unlimited pids for the container. The default is **4096** on systems that support "pids" cgroup controller. -**--pod**=*name* +#### **--pod**=*name* Run container in an existing pod. If you want Podman to make the pod for you, prefix the pod name with **new:**. To make a pod with more granular options, use the **podman pod create** command before creating a container. If a container is run with a pod, and the pod has an infra-container, the infra-container will be started before the container is. -**--pod-id-file**=*path* +#### **--pod-id-file**=*path* Run container in an existing pod and read the pod's ID from the specified file. If a container is run within a pod, and the pod has an infra-container, the infra-container will be started before the container is. -**--preserve-fds**=*N* +#### **--preserve-fds**=*N* Pass down to the process N additional file descriptors (in addition to 0, 1, 2). The total FDs will be 3+N. -**--privileged**=**true**|**false** +#### **--privileged**=**true**|**false** Give extended privileges to this container. The default is **false**. @@ -688,7 +704,7 @@ points, Apparmor/SELinux separation, and Seccomp filters are all disabled. Rootless containers cannot have more privileges than the account that launched them. -**--publish**, **-p**=_ip_:_hostPort_:_containerPort_ | _ip_::_containerPort_ | _hostPort_:_containerPort_ | _containerPort_ +#### **--publish**, **-p**=_ip_:_hostPort_:_containerPort_ | _ip_::_containerPort_ | _hostPort_:_containerPort_ | _containerPort_ Publish a container's port, or range of ports, to the host. @@ -711,7 +727,7 @@ associated ports. If one container binds to a port, no other container can use t within the pod while it is in use. Containers in the pod can also communicate over localhost by having one container bind to localhost in the pod, and another connect to that port. -**--publish-all**, **-P**=**true**|**false** +#### **--publish-all**, **-P**=**true**|**false** Publish all exposed ports to random ports on the host interfaces. The default is **false**. @@ -724,7 +740,7 @@ When using this option, Podman will bind any exposed port to a random port on th within an ephemeral port range defined by */proc/sys/net/ipv4/ip_local_port_range*. To find the mapping between the host ports and the exposed ports, use **podman port**. -**--pull**=**always**|**missing**|**never** +#### **--pull**=**always**|**missing**|**never** Pull image before running. The default is **missing**. @@ -732,11 +748,11 @@ Pull image before running. The default is **missing**. - **always**: Pull the image from the first registry it is found in as listed in registries.conf. Raise an error if not found in the registries, even if the image is present locally. - **never**: do not pull the image from the registry, use only the local version. Raise an error if the image is not present locally. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress output information when pulling images -**--read-only**=**true**|**false** +#### **--read-only**=**true**|**false** Mount the container's root filesystem as read only. @@ -744,15 +760,15 @@ By default a container will have its root filesystem writable allowing processes to write files anywhere. By specifying the **--read-only** flag, the container will have its root filesystem mounted as read only prohibiting any writes. -**--read-only-tmpfs**=**true**|**false** +#### **--read-only-tmpfs**=**true**|**false** If container is running in **--read-only** mode, then mount a read-write tmpfs on _/run_, _/tmp_, and _/var/tmp_. The default is **true**. -**--replace**=**true**|**false** +#### **--replace**=**true**|**false** If another container with the same name already exists, replace and remove it. The default is **false**. -**--restart**=*policy* +#### **--restart**=*policy* Restart policy to follow when containers exit. Restart policy will not take effect if a container is stopped via the **podman kill** or **podman stop** commands. @@ -768,7 +784,7 @@ Please note that restart will not restart containers after a system reboot. If this functionality is required in your environment, you can invoke Podman from a **systemd.unit**(5) file, or create an init script for whichever init system is in use. To generate systemd unit files, please see **podman generate systemd**. -**--rm**=**true**|**false** +#### **--rm**=**true**|**false** Automatically remove the container when it exits. The default is **false**. @@ -776,12 +792,12 @@ Note that the container will not be removed when it could not be created or started successfully. This allows the user to inspect the container after failure. -**--rmi**=*true|false* +#### **--rmi**=*true|false* After exit of the container, remove the image unless another container is using it. The default is *false*. -**--rootfs** +#### **--rootfs** If specified, the first argument refers to an exploded container on the file system. @@ -791,7 +807,7 @@ of the container is assumed to be managed externally. Note: On **SELinux** systems, the rootfs needs the correct label, which is by default **unconfined_u:object_r:container_file_t**. -**--sdnotify**=**container**|**conmon**|**ignore** +#### **--sdnotify**=**container**|**conmon**|**ignore** Determines how to use the NOTIFY_SOCKET, as passed with systemd and Type=notify. @@ -802,13 +818,13 @@ has started. The socket is never passed to the runtime or the container. The **ignore** option removes NOTIFY_SOCKET from the environment for itself and child processes, for the case where some other process above Podman uses NOTIFY_SOCKET and Podman should not use it. -**--seccomp-policy**=*policy* +#### **--seccomp-policy**=*policy* Specify the policy to select the seccomp profile. If set to *image*, Podman will look for a "io.podman.seccomp.profile" label in the container-image config and use its value as a seccomp profile. Otherwise, Podman will follow the *default* policy by applying the default profile unless specified otherwise via *--security-opt seccomp* as described below. Note that this feature is experimental and may change in the future. -**--security-opt**=*option* +#### **--security-opt**=*option* Security Options @@ -828,37 +844,38 @@ Security Options Note: Labeling can be disabled for all containers by setting **label=false** in the **containers.conf**(5) file. -**--shm-size**=_number_[_unit_] +#### **--shm-size**=_number_[_unit_] Size of _/dev/shm_. A _unit_ can be **b** (bytes), **k** (kilobytes), **m** (megabytes), or **g** (gigabytes). If you omit the unit, the system uses bytes. If you omit the size entirely, the default is **64m**. When _size_ is **0**, there is no limit on the amount of memory used for IPC by the container. -**--sig-proxy**=**true**|**false** +#### **--sig-proxy**=**true**|**false** Sets whether the signals sent to the **podman run** command are proxied to the container process. SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is **true**. -**--stop-signal**=*signal* +#### **--stop-signal**=*signal* Signal to stop a container. Default is **SIGTERM**. -**--stop-timeout**=*seconds* +#### **--stop-timeout**=*seconds* Timeout to stop a container. Default is **10**. +Remote connections use local containers.conf for defaults -**--subgidname**=*name* +#### **--subgidname**=*name* Run the container in a new user namespace using the map with _name_ in the _/etc/subgid_ file. If calling **podman run** as an unprivileged user, the user needs to have the right to use the mapping. See **subgid**(5). This flag conflicts with **--userns** and **--gidmap**. -**--subuidname**=*name* +#### **--subuidname**=*name* Run the container in a new user namespace using the map with _name_ in the _/etc/subuid_ file. If calling **podman run** as an unprivileged user, the user needs to have the right to use the mapping. See **subuid**(5). This flag conflicts with **--userns** and **--uidmap**. -**--sysctl**=_name_=_value_ +#### **--sysctl**=_name_=_value_ Configure namespaced kernel parameters at runtime. @@ -882,7 +899,7 @@ For the network namespace, the following ysctls areallowed: Note: if you use the **--network=host** option, these sysctls will not be allowed. -**--systemd**=**true**|**false**|**always** +#### **--systemd**=**true**|**false**|**always** Run container in systemd mode. The default is **true**. @@ -911,7 +928,7 @@ The **container_manage_cgroup** boolean must be enabled for this to be allowed o setsebool -P container_manage_cgroup true ``` -**--tmpfs**=*fs* +#### **--tmpfs**=*fs* Create a tmpfs mount. @@ -926,7 +943,7 @@ options are the same as the Linux default mount flags. If you do not specify any options, the systems uses the following options: **rw,noexec,nosuid,nodev**. -**--tty**, **-t**=**true**|**false** +#### **--tty**, **-t**=**true**|**false** Allocate a pseudo-TTY. The default is **false**. @@ -937,15 +954,17 @@ interactive shell. The default is **false**. **NOTE**: The **-t** option is incompatible with a redirection of the Podman client standard input. -**--tz**=*timezone* +#### **--tz**=*timezone* Set timezone in container. This flag takes area-based timezones, GMT time, as well as `local`, which sets the timezone in the container to match the host machine. See `/usr/share/zoneinfo/` for valid timezones. +Remote connections use local containers.conf for defaults -**--umask**=*umask* +#### **--umask**=*umask* Set the umask inside the container. Defaults to `0022`. +Remote connections use local containers.conf for defaults -**--uidmap**=*container_uid*:*host_uid*:*amount* +#### **--uidmap**=*container_uid*:*host_uid*:*amount* Run the container in a new user namespace using the supplied mapping. This option conflicts with the **--userns** and **--subuidname** flags. @@ -954,11 +973,11 @@ as an unprivileged user, the user needs to have the right to use the mapping. Se The following example maps uids 0-1999 in the container to the uids 30000-31999 on the host: **--uidmap=0:30000:2000**. -**--ulimit**=*option* +#### **--ulimit**=*option* Ulimit options. You can use **host** to copy the current configuration from the host. -**--user**, **-u**=[_user_ | _user_:_group_ | _uid_ | _uid_:_gid_ | _user_:_gid_ | _uid_:_group_ ] +#### **--user**, **-u**=[_user_ | _user_:_group_ | _uid_ | _uid_:_gid_ | _user_:_gid_ | _uid_:_group_ ] Sets the username or UID used and optionally the groupname or GID for the specified command. @@ -966,7 +985,7 @@ Without this argument, the command will run as the user specified in the contain When a user namespace is not in use, the UID and GID used within the container and on the host will match. When user namespaces are in use, however, the UID and GID in the container may correspond to another UID and GID on the host. In rootless containers, for example, a user namespace is always used, and root in the container will by default correspond to the UID and GID of the user invoking Podman. -**--userns**=**auto**|**host**|**keep-id**|**container:**_id_|**ns:**_namespace_ +#### **--userns**=**auto**|**host**|**keep-id**|**container:**_id_|**ns:**_namespace_ Set the user namespace mode for the container. It defaults to the **PODMAN_USERNS** environment variable. An empty value ("") means user namespaces are disabled unless an explicit mapping is set with they `--uidmapping` and `--gidmapping` options. @@ -982,7 +1001,7 @@ Set the user namespace mode for the container. It defaults to the **PODMAN_USER This option is incompatible with **--gidmap**, **--uidmap**, **--subuid** and **--subgid**. -**--uts**=*mode* +#### **--uts**=*mode* Set the UTS namespace mode for the container. The following values are supported: @@ -991,7 +1010,7 @@ Set the UTS namespace mode for the container. The following values are supported - **ns:[path]**: run the container in the given existing UTS namespace. - **container:[container]**: join the UTS namespace of the specified container. -**--volume**, **-v**[=[[_source-volume_|_host-dir_:]_container-dir_[:_options_]]] +#### **--volume**, **-v**[=[[_source-volume_|_host-dir_:]_container-dir_[:_options_]]] Create a bind mount. If you specify _/host-dir_:_/container-dir_, Podman bind mounts _host-dir_ in the host to _container-dir_ in the Podman @@ -1003,7 +1022,7 @@ The _options_ is a comma delimited list and can be: <sup>[[1]](#Footnote1)</sup> * **rw**|**ro** * **z**|**Z** -* [**r**]**shared**|[**r**]**slave**|[**r**]**private** +* [**r**]**shared**|[**r**]**slave**|[**r**]**private**[**r**]**unbindable** * [**r**]**bind** * [**no**]**exec** * [**no**]**dev** @@ -1087,12 +1106,13 @@ way mount propagation and that is mounts done on host under that volume will be visible inside container but not the other way around. <sup>[[1]](#Footnote1)</sup> To control mount propagation property of volume one can use [**r**]**shared**, -[**r**]**slave** or [**r**]**private** propagation flag. Propagation property can -be specified only for bind mounted volumes and not for internal volumes or -named volumes. For mount propagation to work source mount point (mount point -where source dir is mounted on) has to have right propagation properties. For -shared volumes, source mount point has to be shared. And for slave volumes, -source mount has to be either shared or slave. <sup>[[1]](#Footnote1)</sup> +[**r**]**slave**, [**r**]**private** or [**r**]**unbindable** propagation flag. +Propagation property can be specified only for bind mounted volumes and not for +internal volumes or named volumes. For mount propagation to work source mount +point (mount point where source dir is mounted on) has to have right propagation +properties. For shared volumes, source mount point has to be shared. And for +slave volumes, source mount has to be either shared or slave. +<sup>[[1]](#Footnote1)</sup> If you want to recursively mount a volume and all of its submounts into a container, then you can use the **rbind** option. By default the bind option is @@ -1128,7 +1148,7 @@ will convert /foo into a shared mount point. Alternatively, one can directly change propagation properties of source mount. Say, if _/_ is source mount for _/foo_, then use **mount --make-shared /** to convert _/_ into a shared mount. -**--volumes-from**[=*CONTAINER*[:*OPTIONS*]] +#### **--volumes-from**[=*CONTAINER*[:*OPTIONS*]] Mount volumes from the specified container(s). Used to share volumes between containers. The *options* is a comma delimited list with the following available elements: @@ -1161,7 +1181,7 @@ If the location of the volume from the source container overlaps with data residing on a target container, then the volume hides that data on the target. -**--workdir**, **-w**=*dir* +#### **--workdir**, **-w**=*dir* Working directory inside the container. @@ -1387,7 +1407,7 @@ $ podman run --security-opt label=level:TopSecret -i -t rhel7 bash ``` To disable the security labeling for this container versus running with the -**--permissive** flag, use the following command: +#### **--permissive** flag, use the following command: ``` $ podman run --security-opt label=disable -i -t fedora bash diff --git a/docs/source/markdown/podman-save.1.md b/docs/source/markdown/podman-save.1.md index f19c9723a..fb79cfd2a 100644 --- a/docs/source/markdown/podman-save.1.md +++ b/docs/source/markdown/podman-save.1.md @@ -1,7 +1,7 @@ % podman-save(1) ## NAME -podman\-save - Save an image to a container archive +podman\-save - Save image(s) to an archive ## SYNOPSIS **podman save** [*options*] *name*[:*tag*] @@ -12,6 +12,8 @@ podman\-save - Save an image to a container archive **podman save** saves an image to either **docker-archive**, **oci-archive**, **oci-dir** (directory with oci manifest type), or **docker-dir** (directory with v2s2 manifest type) on the local machine, default is **docker-archive**. **podman save** writes to STDOUT by default and can be redirected to a file using the **output** flag. The **quiet** flag suppresses the output when set. +**podman save** will save parent layers of the image(s) and the image(s) can be loaded using **podman load**. +To export the containers, use the **podman export**. Note: `:` is a restricted character and cannot be part of the file name. **podman [GLOBAL OPTIONS]** @@ -22,16 +24,16 @@ Note: `:` is a restricted character and cannot be part of the file name. ## OPTIONS -**--compress** +#### **--compress** Compress tarball image layers when pushing to a directory using the 'dir' transport. (default is same compression type, compressed or uncompressed, as source) Note: This flag can only be set when using the **dir** transport i.e --format=oci-dir or --format-docker-dir -**--output**, **-o**=*file* +#### **--output**, **-o**=*file* Write to a file, default is STDOUT -**--format**=*format* +#### **--format**=*format* Save image to **oci-archive, oci-dir** (directory with oci manifest type), or **docker-dir** (directory with v2s2 manifest type) ``` @@ -40,15 +42,15 @@ Save image to **oci-archive, oci-dir** (directory with oci manifest type), or ** --format docker-dir ``` -**--multi-image-archive**, **-m** +#### **--multi-image-archive**, **-m** Allow for creating archives with more than one image. Additional names will be interpreted as images instead of tags. Only supported for **docker-archive**. -**--quiet**, **-q** +#### **--quiet**, **-q** Suppress the output -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-search.1.md b/docs/source/markdown/podman-search.1.md index fc09d96ea..ec610d3ba 100644 --- a/docs/source/markdown/podman-search.1.md +++ b/docs/source/markdown/podman-search.1.md @@ -25,14 +25,14 @@ Note, searching without a search term will only work for registries that impleme ## OPTIONS -**--authfile**=*path* +#### **--authfile**=*path* Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE environment variable. `export REGISTRY_AUTH_FILE=path` -**--filter**, **-f**=*filter* +#### **--filter**, **-f**=*filter* Filter output based on conditions provided (default []) @@ -42,7 +42,7 @@ Supported filters are: * is-automated (boolean - true | false) - is the image automated or not * is-official (boolean - true | false) - is the image official or not -**--format**=*format* +#### **--format**=*format* Change the output format to a Go template @@ -60,32 +60,32 @@ Valid placeholders for the Go template are listed below: Note: use .Tag only if the --list-tags is set. -**--limit**=*limit* +#### **--limit**=*limit* -Limit the number of results. This value can be in the range between 1 and 100. The default number of results is 25. +Limit the number of results (default 25). Note: The results from each registry will be limited to this value. Example if limit is 10 and two registries are being searched, the total number of results will be 20, 10 from each (if there are at least 10 matches in each). The order of the search results is the order in which the API endpoint returns the results. -**--list-tags** +#### **--list-tags** List the available tags in the repository for the specified image. **Note:** --list-tags requires the search term to be a fully specified image name. The result contains the Image name and its tag, one line for every tag associated with the image. -**--no-trunc** +#### **--no-trunc** Do not truncate the output -**--tls-verify**=*true|false* +#### **--tls-verify**=*true|false* Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used if needed. If not specified, default registries will be searched through (in /etc/containers/registries.conf), and TLS will be skipped if a default registry is listed in the insecure registries. -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-start.1.md b/docs/source/markdown/podman-start.1.md index 84af9d800..4f8aa2b18 100644 --- a/docs/source/markdown/podman-start.1.md +++ b/docs/source/markdown/podman-start.1.md @@ -16,27 +16,27 @@ attach to the container. ## OPTIONS -**--attach**, **-a** +#### **--attach**, **-a** Attach container's STDOUT and STDERR. The default is false. This option cannot be used when starting multiple containers. -**--detach-keys**=*sequence* +#### **--detach-keys**=*sequence* Specify the key sequence for detaching a container. Format is a single character `[a-Z]` or one or more `ctrl-<value>` characters where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`. Specifying "" will disable this feature. The default is *ctrl-p,ctrl-q*. -**--interactive**, **-i** +#### **--interactive**, **-i** Attach container's STDIN. The default is false. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--sig-proxy**=*true|false* +#### **--sig-proxy**=*true|false* Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is *true* when attaching, *false* otherwise. diff --git a/docs/source/markdown/podman-stats.1.md b/docs/source/markdown/podman-stats.1.md index 042da26d1..d5de8caf2 100644 --- a/docs/source/markdown/podman-stats.1.md +++ b/docs/source/markdown/podman-stats.1.md @@ -20,26 +20,26 @@ about their networking usage. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Show all containers. Only running containers are shown by default -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--no-reset** +#### **--no-reset** Do not clear the terminal/screen in between reporting intervals -**--no-stream** +#### **--no-stream** Disable streaming stats and only pull the first result, default setting is false -**--format**=*template* +#### **--format**=*template* Pretty-print container statistics to JSON or using a Go template diff --git a/docs/source/markdown/podman-stop.1.md b/docs/source/markdown/podman-stop.1.md index 1534063a5..83570f50d 100644 --- a/docs/source/markdown/podman-stop.1.md +++ b/docs/source/markdown/podman-stop.1.md @@ -17,28 +17,28 @@ container and also via command line when creating the container. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Stop all running containers. This does not include paused containers. -**--cidfile** +#### **--cidfile** Read container ID from the specified file and remove the container. Can be specified multiple times. -**--ignore**, **-i** +#### **--ignore**, **-i** Ignore errors when specified containers are not in the container store. A user might have decided to manually remove a container which would lead to a failure during the ExecStop directive of a systemd service referencing that container. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. The latest option is not supported on the remote client. -**--time**, **-t**=*time* +#### **--time**, **-t**=*time* Time to wait before forcibly stopping the container diff --git a/docs/source/markdown/podman-system-connection-add.1.md b/docs/source/markdown/podman-system-connection-add.1.md index 5059803a2..32c16d6a1 100644 --- a/docs/source/markdown/podman-system-connection-add.1.md +++ b/docs/source/markdown/podman-system-connection-add.1.md @@ -15,21 +15,21 @@ The user will be prompted for the remote ssh login password or key file pass phr ## OPTIONS -**-d**, **--default**=*false* +#### **--default**=*false*, **-d** Make the new destination the default for this user. -**--identity**=*path* +#### **--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. -**-p**, **--port**=*port* +#### **--port**=*port*, **-p** Port for ssh destination. The default value is `22`. -**--socket-path**=*path* +#### **--socket-path**=*path* Path to the Podman service unix domain socket on the ssh destination host diff --git a/docs/source/markdown/podman-system-df.1.md b/docs/source/markdown/podman-system-df.1.md index 57c02b8e1..f3db2d020 100644 --- a/docs/source/markdown/podman-system-df.1.md +++ b/docs/source/markdown/podman-system-df.1.md @@ -10,11 +10,11 @@ podman\-system\-df - Show podman disk usage Show podman disk usage ## OPTIONS -**--format**=*format* +#### **--format**=*format* Pretty-print images using a Go template -**-v**, **--verbose**[=*true|false*] +#### **--verbose**, **-v** Show detailed information on space usage ## EXAMPLE diff --git a/docs/source/markdown/podman-system-migrate.1.md b/docs/source/markdown/podman-system-migrate.1.md index 29c0ef94b..913f119b0 100644 --- a/docs/source/markdown/podman-system-migrate.1.md +++ b/docs/source/markdown/podman-system-migrate.1.md @@ -26,7 +26,7 @@ newly configured mappings. ## OPTIONS -**--new-runtime**=*runtime* +#### **--new-runtime**=*runtime* Set a new OCI runtime for all containers. This can be used after a system upgrade which changes the default OCI runtime to move all containers to the new runtime. diff --git a/docs/source/markdown/podman-system-prune.1.md b/docs/source/markdown/podman-system-prune.1.md index 9c6ef5d8b..9a078648b 100644 --- a/docs/source/markdown/podman-system-prune.1.md +++ b/docs/source/markdown/podman-system-prune.1.md @@ -14,19 +14,19 @@ With the **--all** option, you can delete all unused images. Unused images are By default, volumes are not removed to prevent important data from being deleted if there is currently no container using the volume. Use the **--volumes** flag when running the command to prune volumes as well. ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Remove all unused images not just dangling ones. -**--force**, **-f** +#### **--force**, **-f** Do not prompt for confirmation -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--volumes** +#### **--volumes** Prune volumes currently unused by any container diff --git a/docs/source/markdown/podman-system-reset.1.md b/docs/source/markdown/podman-system-reset.1.md index 3294bac9b..744f917df 100644 --- a/docs/source/markdown/podman-system-reset.1.md +++ b/docs/source/markdown/podman-system-reset.1.md @@ -7,19 +7,43 @@ podman\-system\-reset - Reset storage back to initial state **podman system reset** [*options*] ## DESCRIPTION -**podman system reset** removes all pods, containers, images and volumes. Must be run after changing any of the following values in the `containers.conf` file: `static_dir`, `tmp_dir` or `volume_path`. +**podman system reset** removes all pods, containers, images and volumes. + +This command must be run **before** changing any of the following fields in the +`containers.conf` or `storage.conf` files: `driver`, `static_dir`, `tmp_dir` +or `volume_path`. + +`podman system reset` reads the current configuration and attempts to remove all +of the relevant configurations. If the administrator modified the configuration files first, +`podman system reset` might not be able to clean up the previous storage. ## OPTIONS -**--force**, **-f** +#### **--force**, **-f** Do not prompt for confirmation -**--help**, **-h** +#### **--help**, **-h** Print usage statement +## EXAMPLES + +### Switching rootless user from VFS driver to overlay with fuse-overlayfs + +If the user ran rootless containers without having the `fuse-overlayfs` program +installed, podman defaults to the `vfs` storage in their home directory. If they +want to switch to use fuse-overlay, they must install the fuse-overlayfs +package. The user needs to reset the storage to use overlayfs by default. +Execute `podman system reset` as the user first to remove the VFS storage. Now +the user can edit the `/etc/containers/storage.conf` to make any changes if +necessary. If the system's default was already `overlay`, then no changes are +necessary to switch to fuse-overlayfs. Podman looks for the existence of +fuse-overlayfs to use it when set in the `overlay` driver, only falling back to vfs +if the program does not exist. Users can run `podman info` to ensure Podman is +using fuse-overlayfs and the overlay driver. + ## SEE ALSO -`podman(1)`, `podman-system(1)` +`podman(1)`, `podman-system(1)`, `fuse-overlayfs(1)`, `containers-storage.conf(5)` ## HISTORY November 2019, Originally compiled by Dan Walsh (dwalsh at redhat dot com) diff --git a/docs/source/markdown/podman-system-service.1.md b/docs/source/markdown/podman-system-service.1.md index 7d18a6832..1fdecfa5c 100644 --- a/docs/source/markdown/podman-system-service.1.md +++ b/docs/source/markdown/podman-system-service.1.md @@ -17,14 +17,16 @@ The REST API provided by **podman system service** is split into two parts: a co Documentation for the latter is available at *https://docs.podman.io/en/latest/_static/api.html*. Both APIs are versioned, but the server will not reject requests with an unsupported version set. +Note: The default systemd unit files (system and user) change the log-level option to *info* from *error*. This change provides additional information on each API call. + ## OPTIONS -**--time**, **-t** +#### **--time**, **-t** -The time until the session expires in _milliseconds_. The default is 1 -second. A value of `0` means no timeout and the session will not expire. +The time until the session expires in _seconds_. The default is 5 +seconds. A value of `0` means no timeout, therefore the session will not expire. -**--help**, **-h** +#### **--help**, **-h** Print usage statement. @@ -40,3 +42,4 @@ podman(1), podman-system-service(1), podman-system-connection(1) ## HISTORY January 2020, Originally compiled by Brent Baude<bbaude@redhat.com> +November 2020, Updated by Jhon Honce <jhonce at redhat.com> diff --git a/docs/source/markdown/podman-tag.1.md b/docs/source/markdown/podman-tag.1.md index 064ea401d..7eab62028 100644 --- a/docs/source/markdown/podman-tag.1.md +++ b/docs/source/markdown/podman-tag.1.md @@ -16,7 +16,7 @@ provided, then podman will default to `latest` for both the *image* and the ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-top.1.md b/docs/source/markdown/podman-top.1.md index 6a04ab91a..cfb89567c 100644 --- a/docs/source/markdown/podman-top.1.md +++ b/docs/source/markdown/podman-top.1.md @@ -9,15 +9,15 @@ podman\-top - Display the running processes of a container **podman container top** [*options*] *container* [*format-descriptors*] ## DESCRIPTION -Display the running processes of the container. The *format-descriptors* are ps (1) compatible AIX format descriptors but extended to print additional information, such as the seccomp mode or the effective capabilities of a given process. The descriptors can either be passed as separated arguments or as a single comma-separated argument. Note that you can also specify options and or flags of ps(1); in this case, Podman will fallback to executing ps with the specified arguments and flags in the container. +Display the running processes of the container. The *format-descriptors* are ps (1) compatible AIX format descriptors but extended to print additional information, such as the seccomp mode or the effective capabilities of a given process. The descriptors can either be passed as separated arguments or as a single comma-separated argument. Note that you can also specify options and or flags of ps(1); in this case, Podman will fallback to executing ps with the specified arguments and flags in the container. Please use the "h*" descriptors if you want to extract host-related information. For instance, `podman top $name hpid huser` to display the PID and user of the processes in the host context. ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. diff --git a/docs/source/markdown/podman-unmount.1.md b/docs/source/markdown/podman-unmount.1.md index 47c55cc0b..97780111a 100644 --- a/docs/source/markdown/podman-unmount.1.md +++ b/docs/source/markdown/podman-unmount.1.md @@ -22,12 +22,16 @@ container's root filesystem is physically unmounted only when the mount counter reaches zero indicating no other processes are using the mount. An unmount can be forced with the --force flag. +Note: Podman can be used to unmount Podman containers as well as external containers. +External containers are containers created in container/storage by other tools like +Buildah and CRI-O. + ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** All of the currently mounted containers will be unmounted. -**--force**, **-f** +#### **--force**, **-f** Force the unmounting of specified containers' root file system, even if other processes have mounted it. @@ -35,7 +39,7 @@ processes have mounted it. Note: This could cause other processes that are using the file system to fail, as the mount point could be removed without their knowledge. -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last diff --git a/docs/source/markdown/podman-unpause.1.md b/docs/source/markdown/podman-unpause.1.md index f5538d6d5..ae178647a 100644 --- a/docs/source/markdown/podman-unpause.1.md +++ b/docs/source/markdown/podman-unpause.1.md @@ -13,7 +13,7 @@ Unpauses the processes in one or more containers. You may use container IDs or ## OPTIONS -**--all**, **-a** +#### **--all**, **-a** Unpause all paused containers. diff --git a/docs/source/markdown/podman-untag.1.md b/docs/source/markdown/podman-untag.1.md index d6ed7f3ea..70053c940 100644 --- a/docs/source/markdown/podman-untag.1.md +++ b/docs/source/markdown/podman-untag.1.md @@ -13,7 +13,7 @@ Remove one or more names from an image in the local storage. The image can be r ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement diff --git a/docs/source/markdown/podman-version.1.md b/docs/source/markdown/podman-version.1.md index 185e8e296..a54e66372 100644 --- a/docs/source/markdown/podman-version.1.md +++ b/docs/source/markdown/podman-version.1.md @@ -12,11 +12,11 @@ OS, and Architecture. ## OPTIONS -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--format**, **-f**=*format* +#### **--format**, **-f**=*format* Change output format to "json" or a Go template. diff --git a/docs/source/markdown/podman-volume-create.1.md b/docs/source/markdown/podman-volume-create.1.md index 5672a80a5..118f024df 100644 --- a/docs/source/markdown/podman-volume-create.1.md +++ b/docs/source/markdown/podman-volume-create.1.md @@ -15,19 +15,19 @@ driver options can be set using the **--opt** flag. ## OPTIONS -**--driver**=*driver* +#### **--driver**=*driver* Specify the volume driver name (default local). -**--help** +#### **--help** Print usage statement -**-l**, **--label**=*label* +#### **--label**=*label*, **-l** Set metadata for a volume (e.g., --label mykey=value). -**-o**, **--opt**=*option* +#### **--opt**=*option*, **-o** Set driver specific options. For the default driver, `local`, this allows a volume to be configured to mount a filesystem on the host. diff --git a/docs/source/markdown/podman-volume-inspect.1.md b/docs/source/markdown/podman-volume-inspect.1.md index b889383b1..ea0ee91b4 100644 --- a/docs/source/markdown/podman-volume-inspect.1.md +++ b/docs/source/markdown/podman-volume-inspect.1.md @@ -16,15 +16,15 @@ Volumes can be queried individually by providing their full name or a unique par ## OPTIONS -**-a**, **--all** +#### **--all**, **-a** Inspect all volumes. -**-f**, **--format**=*format* +#### **--format**=*format*, **-f** Format volume output using Go template -**--help** +#### **--help** Print usage statement diff --git a/docs/source/markdown/podman-volume-ls.1.md b/docs/source/markdown/podman-volume-ls.1.md index a4fb925f8..48853bdfd 100644 --- a/docs/source/markdown/podman-volume-ls.1.md +++ b/docs/source/markdown/podman-volume-ls.1.md @@ -14,19 +14,19 @@ flag. Use the **--quiet** flag to print only the volume names. ## OPTIONS -**-f**, **--filter**=*filter* +#### **--filter**=*filter*, **-f** Filter volume output. -**--format**=*format* +#### **--format**=*format* Format volume output using Go template. -**--help** +#### **--help** Print usage statement. -**-q**, **--quiet** +#### **--quiet**, **-q** Print volume output in quiet mode. Only print the volume names. @@ -40,6 +40,8 @@ $ podman volume ls --format json $ podman volume ls --format "{{.Driver}} {{.Scope}}" $ podman volume ls --filter name=foo,label=blue + +$ podman volume ls --filter label=key=value ``` ## SEE ALSO diff --git a/docs/source/markdown/podman-volume-prune.1.md b/docs/source/markdown/podman-volume-prune.1.md index 25ea701a3..b5f1b7e94 100644 --- a/docs/source/markdown/podman-volume-prune.1.md +++ b/docs/source/markdown/podman-volume-prune.1.md @@ -14,11 +14,11 @@ unused volumes. To bypass the confirmation, use the **--force** flag. ## OPTIONS -**-f**, **--force** +#### **--force**, **-f** Do not prompt for confirmation. -**--help** +#### **--help** Print usage statement diff --git a/docs/source/markdown/podman-volume-rm.1.md b/docs/source/markdown/podman-volume-rm.1.md index ed4a83f9e..c066d1c6e 100644 --- a/docs/source/markdown/podman-volume-rm.1.md +++ b/docs/source/markdown/podman-volume-rm.1.md @@ -15,16 +15,16 @@ Volumes can be removed individually by providing their full name or a unique par ## OPTIONS -**-a**, **--all** +#### **--all**, **-a** Remove all volumes. -**-f**, **--force** +#### **--force**, **-f** Remove a volume by force. If it is being used by containers, the containers will be removed first. -**--help** +#### **--help** Print usage statement diff --git a/docs/source/markdown/podman-wait.1.md b/docs/source/markdown/podman-wait.1.md index f0ccb1f9e..07e42ca6e 100644 --- a/docs/source/markdown/podman-wait.1.md +++ b/docs/source/markdown/podman-wait.1.md @@ -16,17 +16,17 @@ separated by newline in the same order as they were given to the command. ## OPTIONS -**--condition**=*state* +#### **--condition**=*state* Condition to wait on (default "stopped") -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--interval**, **-i**=*duration* +#### **--interval**, **-i**=*duration* Time interval to wait before polling for completion. A duration string is a sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Time unit defaults to "ms". -**--latest**, **-l** +#### **--latest**, **-l** Instead of providing the container name or ID, use the last created container. If you use methods other than Podman to run containers such as CRI-O, the last started container could be from either of those methods. diff --git a/docs/source/markdown/podman.1.md b/docs/source/markdown/podman.1.md index 2d5110ad9..7da01d389 100644 --- a/docs/source/markdown/podman.1.md +++ b/docs/source/markdown/podman.1.md @@ -17,35 +17,40 @@ Podman uses Buildah(1) internally to create container images. Both tools share i (not container) storage, hence each can use or manipulate images (but not containers) created by the other. +Default settings for flags are defined in `containers.conf`. Most settings for +Remote connections use the server's containers.conf, except when documented in +man pages. + **podman [GLOBAL OPTIONS]** ## GLOBAL OPTIONS -**--cgroup-manager**=*manager* +#### **--cgroup-manager**=*manager* The CGroup manager to use for container cgroups. Supported values are cgroupfs or systemd. Default is systemd unless overridden in the containers.conf file. Note: Setting this flag can cause certain commands to break when called on containers previously created by the other CGroup manager type. Note: CGroup manager is not supported in rootless mode when using CGroups Version V1. -**--cni-config-dir** +#### **--cni-config-dir** Path of the configuration directory for CNI networks. (Default: `/etc/cni/net.d`) -**--connection**, **-c** +#### **--connection**, **-c** Connection to use for remote podman (Default connection is configured in `containers.conf`) +Remote connections use local containers.conf for default. -**--conmon** +#### **--conmon** Path of the conmon binary (Default path is configured in `containers.conf`) -**--events-backend**=*type* +#### **--events-backend**=*type* Backend to use for storing events. Allowed values are **file**, **journald**, and **none**. -**--help**, **-h** +#### **--help**, **-h** Print usage statement -**--hooks-dir**=*path* +#### **--hooks-dir**=*path* 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. @@ -61,7 +66,7 @@ Podman and libpod currently support an additional `precreate` state which is cal **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. -**--identity**=*path* +#### **--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. @@ -71,23 +76,25 @@ Identity value resolution precedence: - command line value - environment variable `CONTAINER_SSHKEY`, if `CONTAINER_HOST` is found - `containers.conf` +Remote connections use local containers.conf for default. -**--log-level**=*level* +#### **--log-level**=*level* Log messages above specified level: debug, info, warn, error (default), fatal or panic (default: "error") -**--namespace**=*namespace* +#### **--namespace**=*namespace* Set libpod namespace. Namespaces are used to separate groups of containers and pods in libpod's state. 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. -**--network-cmd-path**=*path* +#### **--network-cmd-path**=*path* 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. -**--remote**, **-r** +#### **--remote**, **-r** Access Podman service will be remote +Remote connections use local containers.conf for default. -**--url**=*value* +#### **--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>]` @@ -104,22 +111,23 @@ URL value resolution precedence: - environment variable `CONTAINER_HOST` - `containers.conf` - `unix://run/podman/podman.sock` +Remote connections use local containers.conf for default. -**--root**=*value* +#### **--root**=*value* 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). Default root dir configured in `/etc/containers/storage.conf`. -**--runroot**=*value* +#### **--runroot**=*value* Storage state directory where all state information is stored (default: "/var/run/containers/storage" for UID 0, "/var/run/user/$UID/run" for other users). Default state dir configured in `/etc/containers/storage.conf`. -**--runtime**=*value* +#### **--runtime**=*value* Name of the OCI runtime as specified in containers.conf or absolute path to the OCI compatible binary used to run containers. -**--runtime-flag**=*flag* +#### **--runtime-flag**=*flag* Adds global flags for the container runtime. To list the supported flags, please consult the manpages of the selected container runtime (`runc` is the default @@ -129,30 +137,30 @@ for cgroup V2, the default runtime is `crun`, the manpage to consult is `crun(8) Note: Do not pass the leading `--` to the flag. To pass the runc flag `--log-format json` to podman build, the option given would be `--runtime-flag log-format=json`. -**--storage-driver**=*value* +#### **--storage-driver**=*value* 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. 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. -**--storage-opt**=*value* +#### **--storage-opt**=*value* 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. -**--syslog**=*true|false* +#### **--syslog**=*true|false* Output logging information to syslog as well as the console (default *false*). On remote clients, logging is directed to the file $HOME/.config/containers/podman.log. -**--tmpdir** +#### **--tmpdir** Path to the tmp directory, for libpod runtime content. 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`. -**--version**, **-v** +#### **--version**, **-v** Print the version @@ -168,7 +176,7 @@ podman --remote flag, only the global options `--url`, `--identity`, `--log-leve Connection information can also be managed using the containers.conf file. -## Exit Status +## Exit Codes 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, @@ -205,6 +213,7 @@ the exit codes follow the `chroot` standard, see below: | [podman-auto-update(1)](podman-auto-update.1.md) | Auto update containers according to their auto-update policy | | [podman-build(1)](podman-build.1.md) | Build a container image using a Containerfile. | | [podman-commit(1)](podman-commit.1.md) | Create new image based on the changed container. | +| [podman-completion(1)](podman-completion.1.md) | Generate shell completion scripts | | [podman-container(1)](podman-container.1.md) | Manage containers. | | [podman-cp(1)](podman-cp.1.md) | Copy files/folders between a container and the local filesystem. | | [podman-create(1)](podman-create.1.md) | Create a new container. | @@ -222,7 +231,7 @@ the exit codes follow the `chroot` standard, see below: | [podman-init(1)](podman-init.1.md) | Initialize one or more containers | | [podman-inspect(1)](podman-inspect.1.md) | Display a container, image, volume, network, or pod's configuration. | | [podman-kill(1)](podman-kill.1.md) | Kill the main process in one or more containers. | -| [podman-load(1)](podman-load.1.md) | Load an image from a container image archive into container storage. | +| [podman-load(1)](podman-load.1.md) | Load image(s) from a tar archive into container storage. | | [podman-login(1)](podman-login.1.md) | Login to a container registry. | | [podman-logout(1)](podman-logout.1.md) | Logout of a container registry. | | [podman-logs(1)](podman-logs.1.md) | Display the logs of one or more containers. | @@ -240,7 +249,7 @@ the exit codes follow the `chroot` standard, see below: | [podman-rm(1)](podman-rm.1.md) | Remove one or more containers. | | [podman-rmi(1)](podman-rmi.1.md) | Removes one or more locally stored images. | | [podman-run(1)](podman-run.1.md) | Run a command in a new container. | -| [podman-save(1)](podman-save.1.md) | Save an image to a container archive. | +| [podman-save(1)](podman-save.1.md) | Save image(s) to an archive. | | [podman-search(1)](podman-search.1.md) | Search a registry for an image. | | [podman-start(1)](podman-start.1.md) | Start one or more containers. | | [podman-stats(1)](podman-stats.1.md) | Display a live stream of one or more container's resource usage statistics. | @@ -256,7 +265,7 @@ the exit codes follow the `chroot` standard, see below: | [podman-volume(1)](podman-volume.1.md) | Simple management tool for volumes. | | [podman-wait(1)](podman-wait.1.md) | Wait on one or more containers to stop and print their exit codes. | -## FILES +## CONFIGURATION FILES **containers.conf** (`/usr/share/containers/containers.conf`, `/etc/containers/containers.conf`, `$HOME/.config/containers/containers.conf`) diff --git a/docs/source/network.rst b/docs/source/network.rst index e7848c90e..0414c0880 100644 --- a/docs/source/network.rst +++ b/docs/source/network.rst @@ -1,8 +1,12 @@ Network ======= +:doc:`connect <markdown/podman-network-connect.1>` network connect + :doc:`create <markdown/podman-network-create.1>` network create +:doc:`disconnect <markdown/podman-network-disconnect.1>` network disconnect + :doc:`inspect <markdown/podman-network-inspect.1>` network inspect :doc:`ls <markdown/podman-network-ls.1>` network list diff --git a/docs/tutorials/README.md b/docs/tutorials/README.md index 7f7b4853d..246d235ee 100644 --- a/docs/tutorials/README.md +++ b/docs/tutorials/README.md @@ -12,7 +12,7 @@ Learn how to setup Podman and perform some basic commands with the utility. The steps required to setup rootless Podman are enumerated. -**[Setup Mac/Windows](mac_win_client.md) +**[Setup Mac/Windows](mac_win_client.md)** Special setup for running the Podman remote client on a Mac or Windows PC and connecting to Podman running on a Linux VM are documented. diff --git a/docs/tutorials/image_signing.md b/docs/tutorials/image_signing.md index f0adca9af..0d1d63de2 100644 --- a/docs/tutorials/image_signing.md +++ b/docs/tutorials/image_signing.md @@ -34,7 +34,7 @@ Now let’s assume that we run a container registry. For example we could simply start one on our local machine: ```bash -> sudo podman run -d -p 5000:5000 docker.io/registry +sudo podman run -d -p 5000:5000 docker.io/registry ``` The registry does not know anything about image signing, it just provides the remote @@ -44,11 +44,11 @@ have to take care of how to distribute the signatures. Let’s choose a standard `alpine` image for our signing experiment: ```bash -> sudo podman pull docker://docker.io/alpine:latest +sudo podman pull docker://docker.io/alpine:latest ``` ```bash -> sudo podman images alpine +sudo podman images alpine REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/alpine latest e7d92cdc71fe 6 weeks ago 5.86 MB ``` @@ -56,11 +56,11 @@ docker.io/library/alpine latest e7d92cdc71fe 6 weeks ago 5.86 MB Now we can re-tag the image to point it to our local registry: ```bash -> sudo podman tag alpine localhost:5000/alpine +sudo podman tag alpine localhost:5000/alpine ``` ```bash -> sudo podman images alpine +sudo podman images alpine REPOSITORY TAG IMAGE ID CREATED SIZE localhost:5000/alpine latest e7d92cdc71fe 6 weeks ago 5.86 MB docker.io/library/alpine latest e7d92cdc71fe 6 weeks ago 5.86 MB @@ -84,7 +84,7 @@ We can see that we have two signature stores configured: Now, let’s push and sign the image: ```bash -> sudo -E GNUPGHOME=$HOME/.gnupg \ +sudo -E GNUPGHOME=$HOME/.gnupg \ podman push \ --tls-verify=false \ --sign-by sgrunert@suse.com \ @@ -97,7 +97,7 @@ If we now take a look at the systems signature storage, then we see that there is a new signature available, which was caused by the image push: ```bash -> sudo ls /var/lib/containers/sigstore +sudo ls /var/lib/containers/sigstore 'alpine@sha256=e9b65ef660a3ff91d28cc50eba84f21798a6c5c39b4dd165047db49e84ae1fb9' ``` @@ -107,14 +107,14 @@ The default signature store in our edited version of the local staging signature store: ```bash -> sudo bash -c 'cd /var/lib/containers/sigstore && python3 -m http.server' +sudo bash -c 'cd /var/lib/containers/sigstore && python3 -m http.server' Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... ``` Let’s remove the local images for our verification test: ``` -> sudo podman rmi docker.io/alpine localhost:5000/alpine +sudo podman rmi docker.io/alpine localhost:5000/alpine ``` We have to write a policy to enforce that the signature has to be valid. This @@ -142,13 +142,13 @@ below example, copy the `"docker"` entry into the `"transports"` section of your The `keyPath` does not exist yet, so we have to put the GPG key there: ```bash -> gpg --output /tmp/key.gpg --armor --export sgrunert@suse.com +gpg --output /tmp/key.gpg --armor --export sgrunert@suse.com ``` If we now pull the image: ```bash -> sudo podman pull --tls-verify=false localhost:5000/alpine +sudo podman pull --tls-verify=false localhost:5000/alpine … Storing signatures e7d92cdc71feacf90708cb59182d0df1b911f8ae022d29e8e95d75ca6a99776a @@ -164,14 +164,14 @@ accessed: As an counterpart example, if we specify the wrong key at `/tmp/key.gpg`: ```bash -> gpg --output /tmp/key.gpg --armor --export mail@saschagrunert.de +gpg --output /tmp/key.gpg --armor --export mail@saschagrunert.de File '/tmp/key.gpg' exists. Overwrite? (y/N) y ``` Then a pull is not possible any more: ```bash -> sudo podman pull --tls-verify=false localhost:5000/alpine +sudo podman pull --tls-verify=false localhost:5000/alpine Trying to pull localhost:5000/alpine... Error: error pulling image "localhost:5000/alpine": unable to pull localhost:5000/alpine: unable to pull image: Source image rejected: Invalid GPG signature: … ``` diff --git a/docs/tutorials/mac_win_client.md b/docs/tutorials/mac_win_client.md index 63830a5b1..375f73102 100644 --- a/docs/tutorials/mac_win_client.md +++ b/docs/tutorials/mac_win_client.md @@ -29,14 +29,14 @@ $ brew install podman ### Enable the Podman service on the server machine. -Before performing any Podman client commands, you must enable the podman.sock SystemD service on the Linux server. In these examples, we are running Podman as a normal, unprivileged user, also known as a rootless user. By default, the rootless socket listens at `/run/user/${UID}/podman/podman.sock`. You can enable this socket, permanently using the following command: +Before performing any Podman client commands, you must enable the podman.sock SystemD service on the Linux server. In these examples, we are running Podman as a normal, unprivileged user, also known as a rootless user. By default, the rootless socket listens at `/run/user/${UID}/podman/podman.sock`. You can enable and start this socket permanently, using the following commands: ``` -$ systemctl --user enable podman.socket +$ systemctl --user enable --now podman.socket ``` You will need to enable linger for this user in order for the socket to work when the user is not logged in. ``` -$ sudo loginctl enable-linger $USER +sudo loginctl enable-linger $USER ``` You can verify that the socket is listening with a simple Podman command. @@ -55,7 +55,7 @@ host: In order for the client to communicate with the server you need to enable and start the SSH daemon on your Linux machine, if it is not currently enabled. ``` -$ sudo systemctl enable -s sshd +sudo systemctl enable --now sshd ``` #### Setting up SSH diff --git a/docs/tutorials/podman_tutorial.md b/docs/tutorials/podman_tutorial.md index 85b95af04..c15de67a6 100644 --- a/docs/tutorials/podman_tutorial.md +++ b/docs/tutorials/podman_tutorial.md @@ -41,7 +41,7 @@ Note: If you add *-a* to the *ps* command, Podman will show all containers. You can "inspect" a running container for metadata and details about itself. We can even use the inspect subcommand to see what IP address was assigned to the container. As the container is running in rootless mode, an IP address is not assigned and the value will be listed as "none" in the output from inspect. ```console -$ podman inspect -l | grep IPAddress\": +podman inspect -l | grep IPAddress\": "SecondaryIPAddresses": null, "IPAddress": "", ``` @@ -60,7 +60,7 @@ curl http://<IP_address>:8080 ### Viewing the container's logs You can view the container's logs with Podman as well: ```console -$ sudo podman logs --latest +podman logs --latest 10.88.0.1 - - [07/Feb/2018:15:22:11 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-" 10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-" 10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-" @@ -71,7 +71,7 @@ $ sudo podman logs --latest ### Viewing the container's pids And you can observe the httpd pid in the container with *top*. ```console -$ sudo podman top <container_id> +podman top <container_id> UID PID PPID C STIME TTY TIME CMD 0 31873 31863 0 09:21 ? 00:00:00 nginx: master process nginx -g daemon off; 101 31889 31873 0 09:21 ? 00:00:00 nginx: worker process @@ -81,6 +81,8 @@ $ sudo podman top <container_id> Checkpointing a container stops the container while writing the state of all processes in the container to disk. With this a container can later be restored and continue running at exactly the same point in time as the checkpoint. This capability requires CRIU 3.11 or later installed on the system. +This feature is not supported as rootless; as such, if you wish to try it, you'll need to re-create your container as root, using the same command but with sudo. + To checkpoint the container use: ```console sudo podman container checkpoint <container_id> @@ -124,18 +126,18 @@ curl http://<IP_address>:8080 ### Stopping the container To stop the httpd container: ```console -sudo podman stop --latest +podman stop --latest ``` You can also check the status of one or more containers using the *ps* subcommand. In this case, we should use the *-a* argument to list all containers. ```console -sudo podman ps -a +podman ps -a ``` ### Removing the container To remove the httpd container: ```console -sudo podman rm --latest +podman rm --latest ``` You can verify the deletion of the container by running *podman ps -a*. diff --git a/docs/tutorials/remote_client.md b/docs/tutorials/remote_client.md index ad506d19a..e39d804a6 100644 --- a/docs/tutorials/remote_client.md +++ b/docs/tutorials/remote_client.md @@ -29,19 +29,19 @@ You will need to [install Podman](https://podman.io/getting-started/installation Before performing any Podman client commands, you must enable the podman.sock SystemD service on the Linux server. In these examples, we are running Podman as a normal, unprivileged user, also known as a rootless user. By default, the rootless socket listens at `/run/user/${UID}/podman/podman.sock`. You can enable this socket permanently using the following command: ``` -$ systemctl --user enable podman.socket +systemctl --user enable --now podman.socket ``` You will need to enable linger for this user in order for the socket to work when the user is not logged in: ``` -$ sudo loginctl enable-linger $USER +sudo loginctl enable-linger $USER ``` This is only required if you are not running Podman as root. You can verify that the socket is listening with a simple Podman command. ``` -$ podman --remote info +podman --remote info host: arch: amd64 buildahVersion: 1.16.0-dev @@ -54,13 +54,13 @@ host: In order for the Podman client to communicate with the server you need to enable and start the SSH daemon on your Linux machine, if it is not currently enabled. ``` -$ sudo systemctl enable -s sshd +sudo systemctl enable --now -s sshd ``` #### Setting up SSH Remote Podman uses SSH to communicate between the client and server. The remote client works considerably smoother using SSH keys. To set up your ssh connection, you need to generate an ssh key pair from your client machine. ``` -$ ssh-keygen +ssh-keygen ``` Your public key by default should be in your home directory under ~/.ssh/id_rsa.pub. You then need to copy the contents of id_rsa.pub and append it into ~/.ssh/authorized_keys on the Linux server. You can automate this using ssh-copy-id. @@ -75,13 +75,13 @@ The first step in using the Podman remote client is to configure a connection. You can add a connection by using the `podman-remote system connection add` command. ``` -$ podman-remote system connection add myuser --identity ~/.ssh/id_rsa ssh://192.168.122.1/run/user/1000/podman/podman.sock +podman-remote system connection add myuser --identity ~/.ssh/id_rsa ssh://192.168.122.1/run/user/1000/podman/podman.sock ``` This will add a remote connection to Podman and if it is the first connection added, it will mark the connection as the default. You can observe your connections with `podman-remote system connection list`: ``` -$ podman-remote system connection list +podman-remote system connection list Name Identity URI myuser* id_rsa ssh://myuser@192.168.122.1/run/user/1000/podman/podman.sock ``` @@ -89,7 +89,7 @@ myuser* id_rsa ssh://myuser@192.168.122.1/run/user/1000/podman/podman.s Now we can test the connection with `podman info`: ``` -$ podman-remote info +podman-remote info host: arch: amd64 buildahVersion: 1.16.0-dev @@ -101,7 +101,7 @@ host: Podman-remote has also introduced a “--connection” flag where you can use other connections you have defined. If no connection is provided, the default connection will be used. ``` -$ podman-remote system connection --help +podman-remote system connection --help ``` ## Wrap up diff --git a/docs/tutorials/rootless_tutorial.md b/docs/tutorials/rootless_tutorial.md index 3b9cbd2d0..9d8851bc8 100644 --- a/docs/tutorials/rootless_tutorial.md +++ b/docs/tutorials/rootless_tutorial.md @@ -6,14 +6,14 @@ Prior to allowing users without root privileges to run Podman, the administrator ## cgroup V2 support -The cgroup V2 Linux kernel feature allows the user to limit the amount of resources a rootless container can use. If the Linux distribution that you are running Podman on is enabled with cgroup V2 then you might need to change the default OCI Runtime. The default runtime `runc` does not currently work with cgroup V2 enabled systems, so you have to switch to the alternative OCI runtime `crun`. +The cgroup V2 Linux kernel feature allows the user to limit the amount of resources a rootless container can use. If the Linux distribution that you are running Podman on is enabled with cgroup V2 then you might need to change the default OCI Runtime. Some older versions of `runc` do not work with cgroup V2, you might have to switch to the alternative OCI runtime `crun`. -The alternative OCI runtime support for cgroup V2 can be turned on at the command line by using the `--runtime` option: +The alternative OCI runtime support for cgroup V2 can also be turned on at the command line by using the `--runtime` option: ``` -sudo podman --runtime /usr/bin/crun +podman --runtime crun ``` -or by changing the value for the "Default OCI runtime" in the containers.conf file either at the system level or at the [user level](#user-configuration-files) from `runtime = "runc"` to `runtime = "crun"`. +or for all commands by changing the value for the "Default OCI runtime" in the containers.conf file either at the system level or at the [user level](#user-configuration-files) from `runtime = "runc"` to `runtime = "crun"`. ## Administrator Actions |