web-dev-qa-db-fra.com

Jeton d'authentification de connexion Docker

J'essaie d'obtenir docker login auth de ~/.docker/config.json fichier. Mais je ne vois pas le jeton auth dans mon config.json fichier. Voici ma version docker.

docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      darwin/AMD64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:00:50 2017
 OS/Arch:      linux/AMD64
 Experimental: true

Quand je lance cat ~/.docker/config.json alors ce que je peux voir c'est

cat .docker/config.json
{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "credsStore": "osxkeychain"
}%

Selon Codeship documentation je devrais voir

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "auth_key",
            "email": "email"
        }
    }
}

Puis-je désactiver le stockage de ma clé d'authentification dans le trousseau?

J'ai vraiment besoin d'obtenir auth_key, comment puis-je obtenir cela?

Je vous remercie

12
Gayan

Auth est simplement une chaîne 'username: password' encodée en base64. Vous pouvez l'obtenir avec la commande suivante:

echo -n 'username:password' | base64
27
Roman Timushev

L'utilisation de stockage des informations d'identification est plus sécurisée que le stockage des informations d'identification encodées en base64 dans config.json fichier. Dans votre cas, Docker utilise le trousseau natif de Mac OS (c'est-à-dire osxkeychain) comme magasin d'informations d'identification.

Maintenant, pour le problème de l'obtention des informations d'identification à partir du osxkeychain, vous pouvez utiliser docker-credential-helpers .

Étapes pour obtenir les informations d'identification (dans le terminal):

  1. Téléchargez la version la plus récente .
  2. Extraire et déplacer vers /usr/local/bin ou ajoutez son chemin vers le $PATH variable. Pour que vous puissiez y accéder globalement.
  3. Exécutez cette commande dans le terminal echo "<server-url>" | docker-credential-osxkeychain get. Si vous souhaitez connaître le server-url utilisez cette commande docker-credential-osxkeychain list.

Obtenez les informations d'identification dans le code go:

 package main 
 
 import (
 "fmt" 
 
 osx "github.com/docker/docker-credential-helpers /client"[.____.UM)).]. [__.]. 
 
 p: = osx.NewShellProgramFunc ("docker-credential-osxkeychain") 
 
 creds, err: = osx.Get (p, "server-url") 
 if err! = nil {
 fmt.Println (err) 
} 
 
 fmt.Printf ("Informations d'identification obtenues pour l'utilisateur`% s` dans `% s` avec le secret`% s`\n ", creds.Username, creds.ServerURL, creds.Secret) 
} 
6
dark_shade

en utilisant macos, vous devez écrire un fichier config.json, un modèle comme celui-ci:

{
    "auths": {
        "hub.xxx.com": {
            "username": "xxx",
            "password": "xxx",
            "email": "xxx",
            "auth": "base64(username:password)"
        }
    }
}
0
flynn

Si vous utilisez Kuberentes et que vous en avez besoin pour créer le mot de passe de registre, lancez simplement:

kubectl create secret docker-registry --dry-run=true docker-regcred \
--docker-server=https://index.docker.io/v1/ \
--docker-username=xxx \
--docker-password=xxx \
[email protected] \
--namsepace yournamespace
-o yaml > docker-secret.yaml

Cela créera docker-secret.yaml avec votre JSON. si vous n'incluez pas --dry-run et -o yaml> docker-secret.yaml Cela créera le secret k8s.

0
NicoKowe