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 в соответствующем домашнем каталоге на удаленном сервере. Любые идеи?
docker login
из контейнера LXD / LXC. Эту проблему я решил, скопировав.docker/config.json
с моего хоста в свой$HOME/.docker/
каталог в контейнере LXD / LXC, который я создал вручную. Сейчас я пытаюсь решить другую проблему, но хотел спросить, пробовали ли вы это сделать?Ответы:
Изменить 2019-04-07:
Поскольку это выбранный в настоящее время ответ, я думаю, что люди должны сначала попробовать решение @Anish Varghese ниже, поскольку оно кажется самым простым. Вам нужно только установить gnupg2 и передать пакеты:
Если это не сработает, вы можете попробовать мое оригинальное решение здесь:
Я была такая же проблема. Ответ 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
введите свои данные. Вы должны увидеть что-то вроде этого:Скопируйте строку 123 ...
5.3)
pass init 1234567890ABCDEF1234567890ABCDEF12345678
(вставить)5.4)
pass insert docker-credential-helpers/docker-pass-initialized-check
и установить следующий пароль «проход инициализирован» (без кавычек).5.5)
pass show docker-credential-helpers/docker-pass-initialized-check
. Вы должны увидеть, что проход инициализирован.5.6)
docker-credential-pass list
6) создайте ~ / .docker / config.json с помощью:
7) вход в докер теперь должен работать
Примечание. Если вы получите сообщение об ошибке «хранилище пропусков не инициализировано» при следующем запуске, выполните следующую команду (она перезагрузит хранилище пропусков в памяти):
Он запросит ваш пароль и инициализирует хранилище пропусков.
Это основано на этом обсуждении: https://github.com/moby/moby/issues/25169#issuecomment-431129898
источник
Установка следующих пакетов в ubuntu исправила мою проблему
источник
sudo apt install pass
, остальное пришло как его зависимостиgnupg2 pass
исправлю проблему?Я столкнулся с той же проблемой в ubuntu 18.08, и это, наконец, сработало для меня ... как временное решение.
Я создал эту папку,
home/.docker/
поскольку некоторые решения предложили мне создать файлconfig.json
и записать в него учетные данные по умолчанию, т.е.config.json
.Затем переименовал docker-credential-secretservice во что-то другое, чтобы он не забирал этот файл.
sudo mv / usr / bin / docker-credential-secretservice / usr / bin / docker-credential-secretservice_x
и это сработало!
источник
org.freedesktop.secrets
. Не найдено для ubuntu 18 (некоторые проблемы). После переименования его (docker-credential-secretservice) во что-то другое, он возвращается к созданию файла конфигурации самостоятельно. Вы можете посмотреть в папке home / .docker один файл config.json.docker-credential-secretservice
из GH, создал~/.docker/config.json
содержимое, как указано выше, затем попытался войти в систему. Получил ошибку. Затем удалил.docker
папкуconfig.json
и/usr/bin/docker-credential-secretservice
исполняемый файл, а затемdocker login
снова запустился с успехомdocker-compose
а затем запустил вашеsudo mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice_x
переименование, это сработало. Кто-нибудь знает для чегоdocker-credential-secretservice
используется?Если apt install gnupg2 pass у вас не работает, вы также можете установить пакет golang-docker-credential-helpers
источник
Это тоже может помочь, по крайней мере, так было в Ubuntu 20.04:
https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d https://github.com/docker/docker-credential-helpers/releases
источник
Для меня
docker push
не удалось с... поэтому я хотел,
docker login
но после ввода учетных данных получил следующее:К счастью, у меня была еще одна машина, на которой я мог войти в систему без каких-либо изменений в системе. Я скопировал содержимое
~/.docker/config.json
...... на другую машину и
docker push
работал.источник
Для меня самым простым решением было создать файл config.json в каталоге .docker внутри домашнего каталога пользователя:
/home/.docker/config.json
Затем я скопировал содержимое этого файла с сервера, с которого я смог войти в докер-хаб.
Это простой обходной путь, потому что он не требует от вас установки или обновления какого-либо пакета, что мы не можем легко сделать на производственных серверах.
источник
Что ж, вы уже читали решение, но факт в том, что gnupg2 теперь не установлен по умолчанию в Ubuntu 18+. Это причина, по которой через некоторое время
apt upgrade
все будет вести себя немного иначе.источник
После ответа у меня возникло несколько проблем.
К счастью, исправить это легко, и вам нужно только установить пакет
rng-tools
: https://stackoverflow.com/a/32941065pass init <key>
шаге 5.3 появилась ошибкаgpg: decryption failed: No secret key
.На самом деле эта проблема связана с тем, что секретный ключ ограничен привилегиями root.
Я сменил владельца
.gnupg .password-store
папок в домашнем каталоге моего пользователя.Затем перезагрузите dirmngr, чтобы избежать предупреждения о "небезопасном владении":
gpgconf --kill dirmngr
Если вы не хотите делать все это, вы можете запустить все команды ответа как root / sudo.
источник
создание следующего решило это для меня:
источник
Простое решение: просто удалите
"credsStore": "secretservice"
из ~ / .docker / config.jsonисточник
Установите следующие пакеты в ubuntu
Это сработало для меня.
источник