mirror of
https://github.com/docker/docs.git
synced 2026-10-29 20:39:05 +03:00
Updates the commandline yaml docs to the latest HEAD of `docker/cli@2d692aedb` Signed-off-by: Eli Uriegas <eli.uriegas@docker.com>
108 lines
6.7 KiB
YAML
108 lines
6.7 KiB
YAML
command: docker login
|
|
short: Log in to a Docker registry
|
|
long: "Login to a registry.\n\n### Login to a self-hosted registry\n\nIf you want
|
|
to login to a self-hosted registry you can specify this by\nadding the server name.\n\n```bash\n$
|
|
docker login localhost:8080\n```\n\n### Provide a password using STDIN\n\nTo run
|
|
the `docker login` command non-interactively, you can set the\n`--password-stdin`
|
|
flag to provide a password through `STDIN`. Using\n`STDIN` prevents the password
|
|
from ending up in the shell's history,\nor log-files.\n\nThe following example reads
|
|
a password from a file, and passes it to the\n`docker login` command using `STDIN`:\n\n```bash\n$
|
|
cat ~/my_password.txt | docker login --username foo --password-stdin\n```\n\n###
|
|
Privileged user requirement\n\n`docker login` requires user to use `sudo` or be
|
|
`root`, except when:\n\n1. connecting to a remote daemon, such as a `docker-machine`
|
|
provisioned `docker engine`.\n2. user is added to the `docker` group. This will
|
|
impact the security of your system; the `docker` group is `root` equivalent. See
|
|
[Docker Daemon Attack Surface](https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface)
|
|
for details.\n\nYou can log into any public or private repository for which you
|
|
have\ncredentials. When you log in, the command stores credentials in\n`$HOME/.docker/config.json`
|
|
on Linux or `%USERPROFILE%/.docker/config.json` on\nWindows, via the procedure described
|
|
below.\n\n### Credentials store\n\nThe Docker Engine can keep user credentials in
|
|
an external credentials store,\nsuch as the native keychain of the operating system.
|
|
Using an external store\nis more secure than storing credentials in the Docker configuration
|
|
file.\n\nTo use a credentials store, you need an external helper program to interact\nwith
|
|
a specific keychain or external store. Docker requires the helper\nprogram to be
|
|
in the client's host `$PATH`.\n\nThis is the list of currently available credentials
|
|
helpers and where\nyou can download them from:\n\n- D-Bus Secret Service: https://github.com/docker/docker-credential-helpers/releases\n-
|
|
Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases\n-
|
|
Microsoft Windows Credential Manager: https://github.com/docker/docker-credential-helpers/releases\n-
|
|
[pass](https://www.passwordstore.org/): https://github.com/docker/docker-credential-helpers/releases\n\n####
|
|
Configure the credentials store\n\nYou need to specify the credentials store in
|
|
`$HOME/.docker/config.json`\nto tell the docker engine to use it. The value of the
|
|
config property should be\nthe suffix of the program to use (i.e. everything after
|
|
`docker-credential-`).\nFor example, to use `docker-credential-osxkeychain`:\n\n```json\n{\n\t\"credsStore\":
|
|
\"osxkeychain\"\n}\n```\n\nIf you are currently logged in, run `docker logout` to
|
|
remove\nthe credentials from the file and run `docker login` again.\n\n#### Default
|
|
behavior\n\nBy default, Docker looks for the native binary on each of the platforms,
|
|
i.e.\n\"osxkeychain\" on macOS, \"wincred\" on windows, and \"pass\" on Linux. A
|
|
special\ncase is that on Linux, Docker will fall back to the \"secretservice\" binary
|
|
if\nit cannot find the \"pass\" binary. If none of these binaries are present, it\nstores
|
|
the credentials (i.e. password) in base64 encoding in the config files\ndescribed
|
|
above.\n\n#### Credential helper protocol\n\nCredential helpers can be any program
|
|
or script that follows a very simple protocol.\nThis protocol is heavily inspired
|
|
by Git, but it differs in the information shared.\n\nThe helpers always use the
|
|
first argument in the command to identify the action.\nThere are only three possible
|
|
values for that argument: `store`, `get`, and `erase`.\n\nThe `store` command takes
|
|
a JSON payload from the standard input. That payload carries\nthe server address,
|
|
to identify the credential, the user name, and either a password\nor an identity
|
|
token.\n\n```json\n{\n\t\"ServerURL\": \"https://index.docker.io/v1\",\n\t\"Username\":
|
|
\"david\",\n\t\"Secret\": \"passw0rd1\"\n}\n```\n\nIf the secret being stored is
|
|
an identity token, the Username should be set to\n`<token>`.\n\nThe `store` command
|
|
can write error messages to `STDOUT` that the docker engine\nwill show if there
|
|
was an issue.\n\nThe `get` command takes a string payload from the standard input.
|
|
That payload carries\nthe server address that the docker engine needs credentials
|
|
for. This is\nan example of that payload: `https://index.docker.io/v1`.\n\nThe `get`
|
|
command writes a JSON payload to `STDOUT`. Docker reads the user name\nand password
|
|
from this payload:\n\n```json\n{\n\t\"Username\": \"david\",\n\t\"Secret\": \"passw0rd1\"\n}\n```\n\nThe
|
|
`erase` command takes a string payload from `STDIN`. That payload carries\nthe server
|
|
address that the docker engine wants to remove credentials for. This is\nan example
|
|
of that payload: `https://index.docker.io/v1`.\n\nThe `erase` command can write
|
|
error messages to `STDOUT` that the docker engine\nwill show if there was an issue.\n\n###
|
|
Credential helpers\n\nCredential helpers are similar to the credential store above,
|
|
but act as the\ndesignated programs to handle credentials for *specific registries*.
|
|
The default\ncredential store (`credsStore` or the config file itself) will not
|
|
be used for\noperations concerning credentials of the specified registries.\n\n####
|
|
Configure credential helpers\n\nIf you are currently logged in, run `docker logout`
|
|
to remove\nthe credentials from the default store.\n\nCredential helpers are specified
|
|
in a similar way to `credsStore`, but\nallow for multiple helpers to be configured
|
|
at a time. Keys specify the\nregistry domain, and values specify the suffix of the
|
|
program to use\n(i.e. everything after `docker-credential-`).\nFor example:\n\n```json\n{\n
|
|
\ \"credHelpers\": {\n \"registry.example.com\": \"registryhelper\",\n \"awesomereg.example.org\":
|
|
\"hip-star\",\n \"unicorn.example.io\": \"vcbait\"\n }\n}\n```"
|
|
usage: docker login [OPTIONS] [SERVER]
|
|
pname: docker
|
|
plink: docker.yaml
|
|
options:
|
|
- option: password
|
|
shorthand: p
|
|
value_type: string
|
|
description: Password
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: password-stdin
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Take the password from stdin
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: username
|
|
shorthand: u
|
|
value_type: string
|
|
description: Username
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
|