Docker: Login Command — Registry Login & Logout

Чтобы начать использовать приватный Docker Registry, пользователю обычно необходимо выполнить команду docker login и ввести имя пользователя и пароль, которые будут закэшированы локально.

Если пользователь попытается выполнить docker pull или docker push в приватный Docker Registry, предварительно не выполнив команду docker login, он может получить следующую ошибку «unauthorized: authentication required».

В данном руководстве объясняется, как залогиниться и вылогиниться из частного Docker Registry из командной строки с помощью команд docker login и docker logout.

Дельный Совет: Скачать образ из Docker Registry! Читать далее →

Команда Docker Login

По умолчанию, если не указать реестр, команда docker login попытается подключиться к публичному реестру Docker Hub — https://registry-1.docker.io:

$ docker login
Login with your Docker ID to push and pull images from Docker Hub.
If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: foo
Password:

Подключиться к приватному Docker Registry (будет предложено ввести логи и пароль):

$ docker login private.registry.tld:8080
Username: foo
Password:

Подключиться к приватному Docker Registry задав имя пользователя и пароль из командной строки:

$ docker login private.registry.tld:8080 -u <username> -p <password>

В качестве альтернативы, пароль может быть считан из файла и передан команде docker login через STDIN (удобно при автоматизации):

$ cat pwd.txt | docker login private.registry.tld:8080 -u <username> --password-stdin

После подключения, закодированная в base64 пара username:password будет сохранена в файле $HOME/.docker/config.json в Linux или %USERPROFILE%/.docker/config.json в Windows:

$ cat $HOME/.docker/config.json
{
  "auths": {
      "https://private.registry.tld:8080/v2/": {
          "auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
      }
  }
}

Дельный Совет: Как войти в Docker-контейнер и запустить bash! Читать далее →

Команда Docker Logout

Для отключения от Docker Registry используется команда docker logout:

$ docker logout private.registry.tld:8080