Blame containers-auth.json.5.md

dc5d922
% containers-auth.json(5)
dc5d922
dc5d922
# NAME
dc5d922
containers-auth.json - syntax for the registry authentication file
dc5d922
dc5d922
# DESCRIPTION
dc5d922
dc5d922
A credentials file in JSON format used to authenticate against container image registries.
dc5d922
The primary (read/write) file is stored at `${XDG_RUNTIME_DIR}/containers/auth.json` on Linux;
dc5d922
on Windows and macOS, at `$HOME/.config/containers/auth.json`.
dc5d922
dc5d922
When searching for the credential for a registry, the following files will be read in sequence until the valid credential is found:
dc5d922
first reading the primary (read/write) file, or the explicit override using an option of the calling application.
dc5d922
If credentials are not present, search in `${XDG\_CONFIG\_HOME}/containers/auth.json`, `$HOME/.docker/config.json`, `$HOME/.dockercfg`.
dc5d922
dc5d922
Except the primary (read/write) file, other files are read-only, unless the user use an option of the calling application explicitly points at it as an override.
dc5d922
dc5d922
dc5d922
## FORMAT
dc5d922
dc5d922
The auth.json file stores encrypted authentication information for the
dc5d922
user to container image registries.  The file can have zero to many entries and
dc5d922
is created by a `login` command from a container tool such as `podman login`,
dc5d922
`buildah login` or `skopeo login`.  Each entry includes the name of the registry and then an auth
dc5d922
token in the form of a base64 encoded string from the concatenation of the
dc5d922
username, a colon, and the password.
dc5d922
dc5d922
The following example shows the values found in auth.json after the user logged in to
dc5d922
their accounts on quay.io and docker.io:
dc5d922
dc5d922
```
dc5d922
{
dc5d922
	"auths": {
dc5d922
		"docker.io": {
dc5d922
			"auth": "erfi7sYi89234xJUqaqxgmzcnQ2rRFWM5aJX0EC="
dc5d922
		},
dc5d922
		"quay.io": {
dc5d922
			"auth": "juQAqGmz5eR1ipzx8Evn6KGdw8fEa1w5MWczmgY="
dc5d922
		}
dc5d922
	}
dc5d922
}
dc5d922
```
dc5d922
dc5d922
An entry can be removed by using a `logout` command from a container
dc5d922
tool such as `podman logout` or `buildah logout`.
dc5d922
dc5d922
In addition, credential helpers can be configured for specific registries and the credentials-helper
dc5d922
software can be used to manage the credentials in a more secure way than depending on the base64 encoded authentication
dc5d922
provided by `login`.  If the credential helpers are configured for specific registries, the base64 encoded authentication will not be used
dc5d922
for operations concerning credentials of the specified registries.
dc5d922
dc5d922
When the credential helper is in use on a Linux platform, the auth.json file would contain keys that specify the registry domain, and values that specify the suffix of the program to use (i.e. everything after docker-credential-).  For example:
dc5d922
dc5d922
```
dc5d922
{
dc5d922
    "auths": {
dc5d922
        "localhost:5001": {}
dc5d922
    },
dc5d922
    "credHelpers": {
dc5d922
		"registry.example.com": "secretservice"
dc5d922
	}
dc5d922
}
dc5d922
```
dc5d922
dc5d922
For more information on credential helpers, please reference the [GitHub docker-credential-helpers project](https://github.com/docker/docker-credential-helpers/releases).
dc5d922
dc5d922
# SEE ALSO
dc5d922
    buildah-login(1), buildah-logout(1), podman-login(1), podman-logout(1), skopeo-login(1), skopeo-logout(1)
dc5d922
dc5d922
# HISTORY
dc5d922
Feb 2020, Originally compiled by Tom Sweeney <tsweeney@redhat.com>