---
name: "podman-login"
section: "1"
platform: "linux"
package: "podman"
version: "6.1.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/podman-login"
---

# podman-login(1)

Log in to a container registry

## NAME

podman-login - Log in to a container registry

## SYNOPSIS

**podman login** \[*options*\] \[*registry*\]

## DESCRIPTION

**podman login** logs into a specified registry server with the correct username and password. If the registry is not specified, the first registry under \[registries.search\] from registries.conf is used. **podman login** reads in the username and password from STDIN. The username and password can also be set using the **username** and **password** flags. The path of the authentication file can be specified by the user by setting the **authfile** flag. The default path for reading and writing credentials is **${XDG\_RUNTIME\_DIR}/containers/auth.json**. Podman uses existing credentials if the user does not pass in a username. Podman first searches for the username and password in the **${XDG\_RUNTIME\_DIR}/containers/auth.json**, if they are not valid, Podman then uses any existing credentials found in **$HOME/.docker/config.json**. If those credentials are not present, Podman creates **${XDG\_RUNTIME\_DIR}/containers/auth.json** (if the file does not exist) and then stores the username and password from STDIN as a base64 encoded string in it. For more details about format and configurations of the auth.json file, see [containers-auth.json(5)](/containers-auth.json/5.md)

**podman \[GLOBAL OPTIONS\]**

**podman login \[GLOBAL OPTIONS\]**

**podman login \[OPTIONS\] \[REGISTRY\] \[GLOBAL OPTIONS\]**

## OPTIONS

### --authfile=*path*

Path of the authentication file. Default is **${XDG\_RUNTIME\_DIR}/containers/auth.json** on Linux, and **$HOME/.config/containers/auth.json** on Windows/macOS. The file is created by **podman login**. If the authorization state is not found there, **$HOME/.docker/config.json** is checked, which is set using **docker login**.

Note: There is also the option to override the default path of the authentication file by setting the **REGISTRY\_AUTH\_FILE** environment variable. This can be done with **export REGISTRY\_AUTH\_FILE=***path.*

### --cert-dir=*path*

*Use certificates at path (\*.crt, \*.cert, \*.key) to connect to the registry. (Default: /etc/containers/certs.d)* *For details, see* **[containers-certs.d(5)](/containers-certs.d/5.md)***.* *(This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines)*

### --compat-auth-file=*path*

*Instead of updating the default credentials file, update the one at path, and use a Docker-compatible format.*

### --get-login

*Return the logged-in user for the registry.  Return error if no login is found.*

### --help, -h

*Print usage statement*

### --password, -p=*password*

*Password for registry*

### --password-stdin

*Take the password from stdin*

### --secret=*name*

*Read the password for the registry from the podman secret* **name**. If --username is not specified --username=**name** is used.

### --tls-verify

Require HTTPS and verify certificates when contacting registries (default: **true**). If explicitly set to **true**, TLS verification is used. If set to **false**, TLS verification is not used. If not specified, TLS verification is used unless the target registry is listed as an insecure registry in **[containers-registries.conf(5)](/containers-registries.conf/5.md)**

### --username, -u=*username*

Username for registry

### --verbose, -v

print detailed information about credential store

## EXAMPLES

Add login credentials for specified registry to default authentication file; note that unlike the **docker** default, the default credentials are under **$XDG\_RUNTIME\_DIR** which is a subdirectory of **/run** (an emphemeral directory) and hence do not persist across reboot.

```
$ podman login quay.io
Username: umohnani
Password:
Login Succeeded!
```

To explicitly preserve credentials across reboot, you will need to specify the default persistent path:

```
$ podman login --authfile ~/.config/containers/auth.json quay.io
Username: umohnani
Password:
Login Succeeded!
```

Add login credentials using specified username and password for local registry to default authentication file.

```
$ podman login -u testuser -p testpassword localhost:5000
Login Succeeded!
```

Add login credentials for alternate authfile path for the specified registry.

```
$ podman login --authfile authdir/myauths.json quay.io
Username: umohnani
Password:
Login Succeeded!
```

Add login credentials using a Podman secret for the password.

```
$ echo -n MySecret! | podman secret create secretname -
a0ad54df3c97cf89d5ca6193c
$ podman login --secret secretname -u testuser quay.io
Login Succeeded!
```

Add login credentials for user test with password test to localhost:5000 registry disabling tls verification requirement.

```
$ podman login --tls-verify=false -u test -p test localhost:5000
Login Succeeded!
```

Add login credentials for user foo with password bar to localhost:5000 registry using the certificate directory /etc/containers/certs.d.

```
$ podman login --cert-dir /etc/containers/certs.d/ -u foo -p bar localhost:5000
Login Succeeded!
```

Add login credentials for specified registries to default authentication file for given user with password information provided via stdin from a file on disk.

```
$ podman login -u testuser  --password-stdin < testpassword.txt docker.io
Login Succeeded!
```

Add login credentials for specified registry to default authentication file for given user with password information provided via stdin from a pipe.

```
$ echo $testpassword | podman login -u testuser --password-stdin quay.io
Login Succeeded!
```

Add login credentials for specified registry to default authentication file in verbose mode.

```
$ podman login quay.io --verbose
Username: myusername
Password:
Used: /run/user/1000/containers/auth.json
Login Succeeded!
```

## SEE ALSO

**[podman(1)](/podman/1.md)**, **[podman-logout(1)](/podman-logout/1.md)**, **[containers-auth.json(5)](/containers-auth.json/5.md)**, **[containers-certs.d(5)](/containers-certs.d/5.md)**, **[containers-registries.conf(5)](/containers-registries.conf/5.md)**, **[podman-secret(1)](/podman-secret/1.md)**, **[podman-secret-create(1)](/podman-secret-create/1.md)**

## HISTORY

August 2017, Originally compiled by Urvashi Mohnani umohnani@redhat.com ⟨mailto:umohnani@redhat.com⟩
