Не удается войти в аккаунт Docker
OS: Ubuntu 18.04 Server
Docker 18.3 CE
Я зашел на сервер, с моего ноутбука с Windows 10, используя сеанс PuTTY SSH.
У меня нет Docker на моем локальном ноутбуке Windows, поэтому вся работа выполняется на удаленном сервере.
Я могу выполнить все команды Docker на удаленном сервере, используя сеанс терминала.
Однако, когда я пытаюсь сохранить свое изображение в концентраторе Docker, когда я пытаюсь войти в систему, используя:
docker login
Появляется следующее сообщение об ошибке:
error getting credentials - err: exit status 1, out: 'GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files'
Я не получал сообщений об ошибках, когда я создал свое изображение на удаленном сервере.
Я также не вижу папку.docker в соответствующем домашнем каталоге на удаленном сервере. Есть идеи?
Ответы
Ответ 1
Изменить 2019-04-07:
Так как это выбранный в настоящее время ответ, я думаю, что люди должны сначала попробовать @Anish Varghese нижеприведенное решение, так как оно кажется самым простым.
Вам нужно только установить пакеты gnupg2 и pass:
sudo apt установить gnupg2 pass
Если это не работает, вы можете попробовать мое оригинальное решение здесь:
Я была такая же проблема. Ответ bak2trak сработал, но он сохранил учетные данные в виде открытого текста. Вот решение, если вы хотите сохранить их в хранилище паролей.
1) Загрузите docker-credential-pass из https://github.com/docker/docker-credential-helpers/releases
2) tar -xvf docker-credential-pass.tar.gz
3) chmod u+x docker-credential-pass
4) mv docker-credential-pass /usr/bin
5) Вам необходимо настроить docker-credential-pass (следующие шаги основаны на https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452)
5.1) установить gpg и пройти (apt-get install gpg pass
)
5.2) gpg --generate-key
, введите вашу информацию. Вы должны увидеть что-то вроде этого:
pub rsa3072 2018-10-07 [SC] [expires: 2020-10-06]
1234567890ABCDEF1234567890ABCDEF12345678
Скопируйте строку 123...
5.3) pass init 1234567890ABCDEF1234567890ABCDEF12345678
(вставить)
5.4) pass insert docker-credential-helpers/docker-pass-initialized-check
и установить
следующий пароль "pass is initialized" (без кавычек).
5.5) pass show docker-credential-helpers/docker-pass-initialized-check
. Вы должны увидеть, что проход инициализирован.
5.6) docker-credential-pass list
6) создайте ~/.docker/config.json с помощью:
{
"credsStore": "pass"
}
7) теперь должен работать вход в докер
Примечание. Если в будущем вы получите сообщение об ошибке "Хранилище паролей не инициализировано", выполните следующую команду (она перезагрузит хранилище паролей в памяти):
pass show docker-credential-helpers/docker-pass-initialized-check
Он спросит ваш пароль и инициализирует хранилище пропусков.
Это основано на этом обсуждении:https://github.com/moby/moby/issues/25169#issuecomment-431129898
Ответ 2
Установите следующие пакеты в ubuntu, исправил мою проблему
sudo apt install gnupg2 pass
Ответ 3
Я столкнулся с той же проблемой в ubuntu 18.08, и это, наконец, сработало для меня.. как временное решение.
Я создал эту папку home/.docker/
поскольку некоторые решения предложили мне создать файл config.json
и записать в него учетные данные по умолчанию, т.е.
{
"credsStore": "pass"
}
- Я удалил этот файл
config.json
. -
Затем переименован docker-credential-secretservice в другое, чтобы он не собирал этот файл.
sudo mv/usr/bin/docker-credential-secretservice/usr/bin/docker-credential-secretservice_x
и это сработало!
Ответ 4
Для меня docker push
не удалось с
denied: requested access to the resource is denied
... поэтому я хотел docker login
, но после ввода учетных данных получил следующее:
Remote error from secret service:
org.freedesktop.DBus.Error.UnknownMethod:
No such interface 'org.freedesktop.Secret.Collection' on object at path
/org/freedesktop/secrets/collection/login
Error saving credentials:
error storing credentials - err: exit status 1, out:
No such interface 'org.freedesktop.Secret.Collection' on object at path
/org/freedesktop/secrets/collection/login
К счастью, у меня была другая машина, на которой я мог войти без каких-либо изменений в системе. Я скопировал содержание ~/.docker/config.json
...
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "<some-hash-value>"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.2 (linux)"
}
}
... на другой машине и docker push
работал.
Ответ 5
Для меня самым простым решением было создать файл config.json в каталоге .docker внутри домашнего каталога пользователя:
~/Дома/.docker/config.json
Затем я скопировал содержимое этого файла с сервера, с которого я смог войти в док-центр.
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "SOMEVALUE"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}
Это простой обходной путь, потому что он не требует установки или обновления какого-либо пакета, что мы не можем легко сделать на производственных серверах.
Ответ 6
Установите следующие пакеты в Ubuntu
sudo apt install gnupg2 pass
Это работает для меня.