OS: Ubuntu 18.04 Server
Docker 18.3 CE
Je suis connecté au serveur, depuis mon ordinateur portable Windows 10, à l'aide d'une session PuTTY SSH.
Je n'ai pas Docker sur mon ordinateur portable Windows local, donc tout le travail est effectué sur le serveur distant.
Je peux exécuter toutes les commandes Docker, sur le serveur distant, en utilisant la session de terminal.
Cependant, lorsque j'essaie d'enregistrer mon image sur le hub Docker, lorsque j'essaie de me connecter, en utilisant:
docker login
Je reçois le message d'erreur suivant:
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`
Je n'ai reçu aucun message d'erreur lorsque j'ai créé mon image sur le serveur distant.
Je ne vois pas non plus de dossier .docker dans le répertoire personnel associé sur le serveur distant. Des idées?
docker login
partir d'un conteneur LXD / LXC. Celui-là que j'ai résolu en copiant.docker/config.json
de mon hôte vers mon$HOME/.docker/
répertoire dans le conteneur LXD / LXC, que j'ai créé manuellement. J'essaie actuellement de résoudre un autre problème maintenant, mais je voulais vous demander si vous aviez déjà essayé de le faire?Réponses:
Modifier le 07/04/2019:
Comme il s'agit de la réponse actuellement sélectionnée, je pense que les gens devraient d'abord essayer la solution @Anish Varghese ci-dessous car elle semble être la plus simple. Il vous suffit d'installer le gnupg2 et de transmettre les packages:
Si cela ne fonctionne pas, vous pouvez essayer ma solution originale ici:
J'ai eu le même problème. La réponse de bak2trak a fonctionné, mais elle a enregistré les informations d'identification en texte clair. Voici la solution si vous souhaitez les conserver dans un magasin de mots de passe.
1) Téléchargez docker-credential-pass depuis 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) Vous devrez configurer docker-credential-pass (les étapes suivantes sont basées sur https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452 )
5.1) installer gpg et passer (
apt-get install gpg pass
)5.2)
gpg --generate-key
, entrez vos informations. Vous devriez voir quelque chose comme ceci:Copiez la ligne 123 ...
5.3)
pass init 1234567890ABCDEF1234567890ABCDEF12345678
(coller)5.4)
pass insert docker-credential-helpers/docker-pass-initialized-check
et définissez le mot de passe suivant "pass is initialized" (sans guillemets).5.5)
pass show docker-credential-helpers/docker-pass-initialized-check
. Vous devriez voir que le pass est initialisé.5.6)
docker-credential-pass list
6) créez un ~ / .docker / config.json avec:
7) La connexion Docker devrait maintenant fonctionner
Remarque: Si vous obtenez l'erreur "Le magasin de pass n'est pas initialisé" lors de l'exécution future, exécutez la commande ci-dessous (elle rechargera le magasin de passe en mémoire):
Il vous demandera votre mot de passe et initialisera le magasin de pass.
Ceci est basé sur cette discussion: https://github.com/moby/moby/issues/25169#issuecomment-431129898
la source
Installer les packages suivants dans ubuntu a résolu mon problème
la source
sudo apt install pass
, le reste est venu comme ses dépendancesgnupg2 pass
résoudra le problème?J'ai rencontré le même problème dans ubuntu 18.08 et cela a finalement fonctionné pour moi .. comme une solution temporaire.
J'avais créé ce dossier
home/.docker/
car certaines solutions m'ont suggéré de créer un fichierconfig.json
et d'y écrire les informations d'identification par défaut, c'est-à-direconfig.json
.Puis renommé docker-credential-secretservice en autre chose pour qu'il ne récupère pas ce fichier.
sudo mv / usr / bin / docker-credential-secretservice / usr / bin / docker-credential-secretservice_x
et ça a marché!
la source
org.freedesktop.secrets
. Ce n'est pas trouvé pour ubuntu 18 (quelques problèmes). Après l'avoir renommé (docker-credential-secretservice) en autre chose, il se replie pour créer le fichier de configuration par lui-même.Vous pouvez regarder dans le dossier home / .docker un fichier config.json aurait été créé.docker-credential-secretservice
partir de GH, créé un~/.docker/config.json
avec le contenu ci-dessus, puis essayé de me connecter. Une erreur s'est produite. Puis supprimé le.docker
dossierconfig.json
et l'/usr/bin/docker-credential-secretservice
exécutable, puis exécuté àdocker login
nouveau avec succèsdocker-compose
puis exécuté votresudo mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice_x
changement de nom, cela a fonctionné. Est-ce que quelqu'un sait à quoi çadocker-credential-secretservice
sert?Si apt install gnupg2 pass ne fonctionne pas pour vous, vous pouvez également installer le package golang-docker-credential-helpers
la source
Cela peut également aider, du moins dans Ubuntu 20.04:
https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d https://github.com/docker/docker-credential-helpers/releases
la source
Pour moi a
docker push
échoué avec... donc je voulais
docker login
mais j'ai obtenu ce qui suit après avoir entré les informations d'identification:Heureusement, j'avais une autre machine disponible sur laquelle j'ai pu me connecter sans aucune modification du système. J'ai copié le contenu de
~/.docker/config.json
...... à l'autre machine et a
docker push
travaillé.la source
Pour moi, la solution la plus simple était de créer un fichier config.json sous le répertoire .docker dans le répertoire personnel de l'utilisateur:
/home/.docker/config.json
Ensuite, j'ai copié le contenu de ce fichier à partir du serveur à partir duquel j'ai pu me connecter au docker hub.
C'est une solution de contournement facile, car elle ne vous oblige pas à installer ou mettre à jour un package que nous ne pouvons pas faire facilement sur les serveurs de production.
la source
Eh bien, vous avez déjà lu la solution, mais le fait est que gnupg2 n'est maintenant pas installé par défaut dans Ubuntu 18+, c'est la raison pour laquelle quelque temps après
apt upgrade
, les choses se comportent un peu différemment.la source
Suite à la réponse, j'ai eu plusieurs problèmes.
Heureusement, le correctif est simple et il vous suffit d'installer le package
rng-tools
: https://stackoverflow.com/a/32941065pass init <key>
(étape 5.3), l'erreur estgpg: decryption failed: No secret key
apparue.En fait, ce problème est dû au fait que la clé secrète est limitée aux privilèges root.
J'ai changé la propriété des
.gnupg .password-store
dossiers dans le domicile de mon utilisateur.Puis rechargé le dirmngr pour éviter l'avertissement de "propriété non sécurisée":
Si vous ne voulez pas faire tout cela, vous pouvez exécuter toutes les commandes de la réponse en tant que root / sudo.
la source
la création de ce qui suit l'a résolu pour moi:
la source
Solution simple: supprimez simplement
"credsStore": "secretservice"
de ~ / .docker / config.jsonla source
Installez les packages suivants dans ubuntu
Cela a fonctionné pour moi.
la source