Moby: Message d'erreur lors de la création du service avec une image hébergée dans un référentiel privé

Créé le 30 mars 2017  ·  3Commentaires  ·  Source: moby/moby

La description

Je reçois une erreur chaque fois que je crée un service dans un cluster swarm avec une image hébergée dans un référentiel privé sur docker hub.
Le service fonctionne, c'est juste le message d'erreur qui s'affiche à chaque fois que je crée un service.

Étapes pour reproduire le problème :

  1. Créer un référentiel privé dans docker hub
  2. Créer un cluster d'essaim
  3. Connectez-vous au docker
  4. Tirez l'image sur le serveur
  5. Créer un service avec l'image

Décrivez les résultats que vous avez reçus :

unable to pin image organization/some-image to digest: errors:
denied: requested access to the resource is denied
unauthorized: authentication required

Décrivez les résultats que vous attendiez :
Pas de message d'erreur

Sortie de docker version :

Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:45:26 2017
 OS/Arch:      linux/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:45:26 2017
 OS/Arch:      linux/amd64
 Experimental: false

Sortie de docker info :

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 3
Server Version: 17.03.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 33
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: omkzmqvpztv77kkg4j7w6dhj9
 Is Manager: true
 ClusterID: zpzn4xvqs6h5drt29423a7wr6
 Managers: 1
 Nodes: 2
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: x.x.x.x
 Manager Addresses:
  x.x.x.x:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-70-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.66 GiB
Name: name
ID: CMZP:AJOT:ELIE:T4NT:52JS:A6U6:LYE4:DNPW:LCJB:R2UR:XO3K:CDP6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: intezerdev
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
 size=f8
 provider=azure
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Détails supplémentaires sur l'environnement (AWS, VirtualBox, physique, etc.) :
azur, à l'aide de docker-machine

areswarm kinquestion statumore-info-needed versio17.03

Commentaire le plus utile

Ceci est attendu ; lors de la création d'un service, docker ne transmet pas automatiquement vos identifiants. La transmission des informations d'identification / d'authentification est une action explicite (par conception), car ces informations d'identification seront stockées dans l'essaim et distribuées aux nœuds sur lesquels le service est déployé.

Pour transmettre les informations d'identification, utilisez l'option --with-registry-auth lors de la création du service, ou pour _mettre à jour_ les informations d'authentification sur un service existant ( docker service update --with-registry-auth ).

Je ne pense pas qu'il y ait un bug ici, mais faites-moi savoir si cela a fonctionné ou si vous rencontrez toujours des problèmes

Tous les 3 commentaires

Ceci est attendu ; lors de la création d'un service, docker ne transmet pas automatiquement vos identifiants. La transmission des informations d'identification / d'authentification est une action explicite (par conception), car ces informations d'identification seront stockées dans l'essaim et distribuées aux nœuds sur lesquels le service est déployé.

Pour transmettre les informations d'identification, utilisez l'option --with-registry-auth lors de la création du service, ou pour _mettre à jour_ les informations d'authentification sur un service existant ( docker service update --with-registry-auth ).

Je ne pense pas qu'il y ait un bug ici, mais faites-moi savoir si cela a fonctionné ou si vous rencontrez toujours des problèmes

par rapport à Pull the image on the server , puis déployer ; Le mode Swarm "épingle" les images dans leur condensé, alors assurez-vous que toutes les instances de votre service exécutent _exactement_ la même version de votre image. Pour cela, il contactera le registre, et résoudra le "digest" (balise immuable). Pour cela, il a besoin d'accéder au registre. Si la résolution du condensé échoue, docker utilisera le image:tag vous avez fourni lors de la création du service et utilisera une image locale (si elle existe) ; voir https://github.com/docker/docker/issues/31518

Je vais aller de l'avant et clore ce sujet, mais n'hésitez pas à continuer la discussion si vous avez besoin de plus d'informations 👍

Cette page vous a été utile?
0 / 5 - 0 notes