У меня есть система, в которой я пытаюсь выполнить команду docker login
, это система безголового linux, но, к сожалению, установлена только Docker Credentials Helper docker-credential-secretservice.
Это означает, что я получаю следующую ошибку:
Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`
Имеет смысл получить это как:
По умолчанию Docker ищет собственный двоичный файл накаждая из платформ, то есть «osxkeychain» в macOS, «wincred» в windows и «pass» в Linux. Особый случай заключается в том, что в Linux Docker возвращается к двоичному файлу «secretservice», если не может найти двоичный файл «pass» .Если ни один из этих двоичных файлов отсутствует, он сохраняет учетные данные (т. Е. Пароль) в кодировке base64 в файлах конфигурации, описанных выше.
И поскольку secretservice
помощник использует хранилище учетных данных GUI, он пытается открытьокно, которое недоступно в системе без монитора.
У меня нет контроля над системой, поэтому я не могу удалить файл /usr/bin/docker-credential-secretservice
, чтобы заставить docker login
вернуться к конфигурациивместо использования secretservice
helper.
Я могу создавать и перечислять файлы в домашней папке моего пользователя.Я попытался выполнить команду следующим образом:
docker --config ./docker login -u <user-name> -p <password> <repository>
У меня сложилось впечатление, что команда login создаст config.json
в ./docker (я заметил, что docker login
willсоздайте папку, если она не существует).Это работает в системе, в которой не установлены никакие помощники, но не в рассматриваемой системе.
Я также пытался создать ~/.docker/config.json
с чем-то вроде:
echo '{"credStore":""}' > ~/.docker/config.json
Надеясь, что docker login
получит подсказку, чтобы не использовать никаких помощников для хранилища учетных данных.
Есть ли способ для не-администратора заставить docker login
вернуться к:
хранит учетные данные (т.е. пароль) в кодировке base64 в конфигурационных файлах, описанных выше.Без удаления помощника по учетным данным?
(в качестве примечания я, конечно, попрошу удалить /usr/bin/docker-credential-secretservice
, но, если это невозможно или для использования в будущем, есть ли альтернатива?решения?)