github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/docs/source/markdown/podman-push.1.md (about) 1 % podman-push(1) 2 3 ## NAME 4 podman\-push - Push an image, manifest list or image index from local storage to elsewhere 5 6 ## SYNOPSIS 7 **podman push** [*options*] *image* [*destination*] 8 9 **podman image push** [*options*] *image* [*destination*] 10 11 ## DESCRIPTION 12 Pushes an image, manifest list or image index from local storage to a specified 13 destination. Push is mainly used to push images to registries, however 14 **podman push** can be used to save images to tarballs and directories using the 15 following transports: 16 **dir:**, **docker-archive:**, **docker-daemon:** and **oci-archive:**. 17 18 ## Image storage 19 Images are pushed from those stored in local image storage. 20 21 ## DESTINATION 22 23 DESTINATION is the location the container image is pushed to. It supports all transports from `containers-transports(5)`. If no transport is specified, the `docker` (i.e., container registry) transport is used. For remote clients, including Mac and Windows (excluding WSL2) machines, `docker` is the only supported transport. 24 25 ``` 26 # Push to a container registry 27 $ podman push quay.io/podman/stable 28 29 # Push to a container registry via the docker transport 30 $ podman push docker://quay.io/podman/stable 31 32 # Push to a container registry with another tag 33 $ podman push myimage quay.io/username/myimage 34 35 # Push to a local directory 36 $ podman push myimage dir:/tmp/myimage 37 38 # Push to a tarball in the docker-archive format 39 $ podman push myimage docker-archive:/tmp/myimage 40 41 # Push to a local docker daemon 42 $ sudo podman push myimage docker-daemon:docker.io/library/myimage:33 43 44 # Push to a tarball in the OCI format 45 $ podman push myimage oci-archive:/tmp/myimage 46 ``` 47 48 ## OPTIONS 49 50 #### **--authfile**=*path* 51 52 Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`. 53 If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`. 54 55 Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE 56 environment variable. `export REGISTRY_AUTH_FILE=path` 57 58 #### **--cert-dir**=*path* 59 60 Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry. (Default: /etc/containers/certs.d) 61 Please refer to containers-certs.d(5) for details. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines) 62 63 #### **--compress** 64 65 Compress tarball image layers when pushing to a directory using the 'dir' transport. (default is same compression type, compressed or uncompressed, as source) 66 Note: This flag can only be set when using the **dir** transport 67 68 #### **--compression-format** *COMPRESSION* 69 70 Specifies the compression format to use. Supported values are: `gzip`, `zstd` and `zstd:chunked`. The default is `gzip`. 71 72 #### **--creds**=*[username[:password]]* 73 74 The [username[:password]] to use to authenticate with the registry if required. 75 If one or both values are not supplied, a command line prompt will appear and the 76 value can be entered. The password is entered without echo. 77 78 #### **--digestfile** *Digestfile* 79 80 After copying the image, write the digest of the resulting image to the file. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines) 81 82 #### **--disable-content-trust** 83 84 This is a Docker specific option to disable image verification to a Docker 85 registry and is not supported by Podman. This flag is a NOOP and provided 86 solely for scripting compatibility. 87 88 #### **--format**, **-f**=*format* 89 90 Manifest Type (oci, v2s2, or v2s1) to use when pushing an image. 91 92 #### **--quiet**, **-q** 93 94 When writing the output image, suppress progress output 95 96 #### **--remove-signatures** 97 98 Discard any pre-existing signatures in the image. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines) 99 100 #### **--sign-by**=*key* 101 102 Add a signature at the destination using the specified key. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines) 103 104 #### **--tls-verify** 105 106 Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, 107 then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, 108 TLS verification will be used unless the target registry is listed as an insecure registry in registries.conf. 109 110 ## EXAMPLE 111 112 This example pushes the image specified by the imageID to a local directory in docker format. 113 114 `# podman push imageID dir:/path/to/image` 115 116 This example pushes the image specified by the imageID to a local directory in oci format. 117 118 `# podman push imageID oci-archive:/path/to/layout:image:tag` 119 120 This example pushes the image specified by the imageID to a container registry named registry.example.com 121 122 `# podman push imageID docker://registry.example.com/repository:tag` 123 124 This example pushes the image specified by the imageID to a container registry named registry.example.com and saves the digest in the specified digestfile. 125 126 `# podman push --digestfile=/tmp/mydigest imageID docker://registry.example.com/repository:tag` 127 128 This example pushes the image specified by the imageID and puts it into the local docker container store 129 130 `# podman push imageID docker-daemon:image:tag` 131 132 This example pushes the alpine image to umohnani/alpine on dockerhub and reads the creds from 133 the path given to --authfile 134 135 ``` 136 # podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine 137 Getting image source signatures 138 Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0 139 4.03 MB / 4.03 MB [========================================================] 1s 140 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156 141 1.41 KB / 1.41 KB [========================================================] 1s 142 Writing manifest to image destination 143 Storing signatures 144 ``` 145 146 This example pushes the rhel7 image to rhel7-dir with the "oci" manifest type 147 ``` 148 # podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir 149 Getting image source signatures 150 Copying blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4 151 71.41 MB / 71.41 MB [======================================================] 9s 152 Copying blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a 153 1.21 KB / 1.21 KB [========================================================] 0s 154 Copying config sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b 155 3.01 KB / 3.01 KB [========================================================] 0s 156 Writing manifest to image destination 157 Storing signatures 158 ``` 159 160 ## SEE ALSO 161 **[podman(1)](podman.1.md)**, **[podman-pull(1)](podman-pull.1.md)**, **[podman-login(1)](podman-login.1.md)**, **[containers-certs.d(5)](https://github.com/containers/image/blob/main/docs/containers-certs.d.5.md)**, **[containers-registries.conf(5)](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md)**, **[containers-transports(5)](https://github.com/containers/image/blob/main/docs/containers-transports.5.md)**