docker login

Войти в реестр Docker

Использование

$ docker login [OPTIONS] [SERVER]

Обратитесь к разделу параметров для обзора доступных OPTIONS для этой команды.

Описание

Войти в реестр.

Примеры использования этой команды см. в разделе примеров далее.

Параметры

Имя, сокращенно

По умолчанию

Описание

--password, -p

Пароль

--password-stdin

Принять пароль от stdin

--username, -u

Имя пользователя

Примеры

Войти в собственный реестр

Если вы хотите войти в собственный реестр, вы можете указывает это, добавив имя сервера.

$ docker login localhost:8080

Входит пароль, используя STDIN

Чтобы запускает команду docker login в неинтерактивном режиме, вы можете установить флаг --password-stdin для предоставления пароля через STDIN . Использование STDIN предотвращает попадание пароля в историю оболочки или файлы журналов.

В следующем примере пароль считывается из файла и передаётся команде docker login с использованием STDIN :

$ cat ~/my_password.txt | docker login --username foo --password-stdin

Требование привилегированного пользователя

docker login требует, чтобы пользователь использовал sudo или root , кроме случаев, когда:

  1. подключение к удаленному демону, такому как подготовленный docker-machine docker engine.

  2. пользователь добавлен в группу docker. Это повлияет на безопасность вашей системы; группа docker эквивалентна root. Подробности см. в Поверхность атаки демона Docker.

Вы можете войти в любой общедоступный или частный репозиторий, для которого у вас есть учетные данные. Когда вы входите в систему, команда сохраняет учетные данные в $HOME/.docker/config.json в Linux или %USERPROFILE%/.docker/config.json в Windows с помощью процедуры, описанной далее.

Магазин учетных данных

Docker Engine может хранить учетные данные пользователя во внешнем хранилище учетных данных, например в собственной цепочке ключей операционной системы. Использование внешнего хранилища более безопасно, чем хранение учетных данных в файле конфигурации Docker.

Чтобы использовать хранилище учетных данных, вам нужна внешняя вспомогательная программа для взаимодействия с определенной цепочкой ключей или внешним хранилищем. Docker требует, чтобы вспомогательная программа находилась на хосте клиента $PATH.

Это список доступных в настоящее время помощников по учетным данным и того, откуда вы можете их загружает:

Настраивает хранилище учетных данных

Вам нужно указывает хранилище учетных данных в $HOME/.docker/config.json, чтобы указывает механизму Docker использовать его. Значением свойства config должен быть суффикс используемой программы (т. е. все после docker-credential-). Например, чтобы использовать docker-credential-osxkeychain:

{
  "credsStore": "osxkeychain"
}

Если вы уже вошли в систему, запускает docker logout, чтобы удаляет учетные данные из файла, и снова запускает docker login.

Поведение по умолчанию

По умолчанию Docker ищет собственный двоичный файл на каждой из платформ, т. е. «osxkeychain» в macOS, «wincred» в Windows и «pass» в Linux. Особым случаем является то, что в Linux Docker возвращается к двоичному файлу «secretservice», если не может найти двоичный файл «pass». Если ни один из данных двоичных файлов не присутствует, он сохраняет учетные данные (т. е. пароль) в кодировке base64 в файлах конфигурации, рассмотренных выше.

Вспомогательный протокол учетных данных

Помощниками по учетным данным могут быть любые программы или скрипты, которые следуют очень простому протоколу. Данный протокол во многом вдохновлен Git, но отличается разделяемой информацией.

Помощники всегда используют первый аргумент в команде для определения действия. Для этого аргумента есть только три возможных значения: store , get и erase .

Команда store получает полезную нагрузку JSON из стандартного ввода. Эта полезная нагрузка содержит адрес сервера для идентификации учетных данных, имя пользователя и либо пароль, либо токен идентификации.

{
  "ServerURL": "https://index.docker.io/v1",
  "Username": "david",
  "Secret": "passw0rd1"
}

Если сохраняемый секрет является токеном идентификации, для имени пользователя должно быть задано значение <token>.

Команда store может записывать сообщения об ошибках в STDOUT, которые Docker Engine покажет в случае возникновения проблемы.

Команда get получает строковую полезную нагрузку из стандартного ввода. Эта полезная нагрузка содержит адрес сервера, для которого движку Docker нужны учетные данные. Это пример полезной нагрузки: https://index.docker.io/v1.

Команда get записывает полезные данные JSON в STDOUT . Docker считывает имя пользователя и пароль из этой полезной нагрузки:

{
  "Username": "david",
  "Secret": "passw0rd1"
}

Команда erase берет строку полезных данных из STDIN. Эта полезная нагрузка содержит адрес сервера, для которого механизм Docker хочет удаляет учетные данные. Это пример полезной нагрузки: https://index.docker.io/v1.

Команда erase может записывать сообщения об ошибках в STDOUT, которые движок Docker покажет в случае возникновения проблемы.

Помощники по учетным данным

Помощники по учетным данным аналогичны описанному выше хранилищу учетных данных, но действуют как назначенные программы для обработки учетных данных для определённых реестров . Хранилище учетных данных по умолчанию ( credsStore или сам файл конфигурации) не будет использоваться для операций с учетными данными указанных реестров.

Настраивает помощники по учетным данным

Если вы уже вошли в систему, запускает docker logout, чтобы удаляет учетные данные из хранилища по умолчанию.

Помощники по учетным данным задаются аналогично credsStore , но позволяют настроить несколько помощников одновременно. Ключи указывают домен реестра, а значения указывают суффикс используемой программы (т.е. все после docker-credential- ). Например:

{
  "credHelpers": {
    "registry.example.com": "registryhelper",
    "awesomereg.example.org": "hip-star",
    "unicorn.example.io": "vcbait"
  }
}