Edycja 2019-04-07:
Ponieważ jest to obecnie wybrana odpowiedź, myślę, że najpierw należy wypróbować rozwiązanie @Anish Varghese poniżej, ponieważ wydaje się ono najłatwiejsze. Musisz tylko zainstalować pakiet gnupg2 i przekazać pakiety:
sudo apt install gnupg2 pass
Jeśli to nie zadziała, możesz wypróbować moje oryginalne rozwiązanie tutaj:
Miałem ten sam problem. Odpowiedź bak2trak działała, ale zapisała dane uwierzytelniające w postaci zwykłego tekstu. Oto rozwiązanie, jeśli chcesz je przechowywać w magazynie haseł.
1) Pobierz docker-credential-pass z 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) Będziesz musiał skonfigurować docker-credential-pass (poniższe kroki są oparte na https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452 )
5.1) zainstaluj gpg i pass ( apt-get install gpg pass
)
5.2) gpg --generate-key
wprowadź swoje dane. Powinieneś zobaczyć coś takiego:
pub rsa3072 2018-10-07 [SC] [expires: 2020-10-06]
1234567890ABCDEF1234567890ABCDEF12345678
Skopiuj linię 123 ...
5.3) pass init 1234567890ABCDEF1234567890ABCDEF12345678
(wklej)
5.4) pass insert docker-credential-helpers/docker-pass-initialized-check
i ustaw następne hasło „pass is initialized” (bez cudzysłowów).
5.5) pass show docker-credential-helpers/docker-pass-initialized-check
. Powinieneś zobaczyć, że pass jest zainicjowany.
5.6) docker-credential-pass list
6) utwórz plik ~ / .docker / config.json z:
{
"credsStore": "pass"
}
7) Logowanie do dockera powinno teraz działać
Uwaga: jeśli w przyszłości pojawi się komunikat o błędzie „magazyn przepustek jest niezainicjowany”, uruchom poniższe polecenie (spowoduje to ponowne załadowanie magazynu przepustek w pamięci):
pass show docker-credential-helpers/docker-pass-initialized-check
Zapyta o hasło i zainicjuje magazyn przepustek.
Jest to oparte na tej dyskusji:
https://github.com/moby/moby/issues/25169#issuecomment-431129898
docker login
z kontenera LXD / LXC. Ten konkretny problem rozwiązałem, kopiując.docker/config.json
z mojego hosta do mojego$HOME/.docker/
katalogu w kontenerze LXD / LXC, który utworzyłem ręcznie. Obecnie próbuję rozwiązać inny problem, ale chciałem zapytać, czy próbowałeś już tego zrobić?