Utilisation du registre privé hébergé sur docker

Je suis l'hébergement de mon propre menu fixe-registre dans un conteneur docker. Il est mené par nginx cours d'exécution dans un récipient séparé pour ajouter l'authentification basique. La vérification de la _ping routes, je peux voir que nginx est de routage de façon appropriée. Lors de l'appel de docker login de boot2docker (sur Mac OSX), j'obtiens cette erreur:

FATA[0003] la réponse d'Erreur de démon: registre Invalides de point de terminaison https://www.example.com:8080/v1/: Obtenir https://www.example.com:8080/v1/_ping: x509: certificat signé par une autorité inconnue. Si ce registre ne supporte que le protocole HTTP ou HTTPS avec un certificat d'autorité de certification inconnue, s'il vous plaît ajouter --insecure-registry www.example.com:8080 le démon de son argumentation. Dans le cas de HTTPS, si vous avez accès à la greffe du certificat d'autorité de certification, pas besoin pour le drapeau, il suffit de placer le certificat d'autorité de certification à /etc/docker/certs.d/www.exemple.com:8080/ca.crt

Ce qui est étrange parce que c'est valide CA SSL cert. J'ai essayé d'ajouter --insecure-registry EXTRA-ARGS conformément à ces instructions: https://github.com/boot2docker/boot2docker#insecure-registry mais au départ, le "profil" le fichier n'existe pas. Si je le crée, et ajouter

EXTRA_ARGS="--insecure-registry www.example.com:8080"

Je ne vois pas d'amélioration. J'ai voulu isoler l'exemple et donc essayé docker login à partir d'une machine virtuelle ubuntu (pas boot2docker). Maintenant j'ai une autre erreur:

Error response from daemon: 

Le panneau de registre est géré directement par le public hub, par exemple

docker run -d -p 5000:5000 registry

(Notez que nginx itinéraires de 8080 à 5000). Toute aide et/ou de ressources pour vous aider à déboguer ce serait bien apprécié.

Mise à JOUR

J'étais à la recherche d'un guide pour aider de façon exhaustive résoudre ce problème. Plus précisément:

  • Créer un registre privé
  • Sécuriser le registre avec le basic Auth
  • Utiliser le registre de boot2docker

J'ai créé la base de registre et de tests en local, ça fonctionne. J'ai obtenu le registre avec nginx l'ajout de l'authentification basique.

Le problème, c'est maintenant fait à l'aide du registre à partir de deux types de clients:

1) Non boot2docker client.
L'une des réponses ci-dessous ont contribué à cette. J'ai ajouté --l'insécurité-indicateur de registre des options dans /etc/default/docker et maintenant je peux parler à ma télécommande panneau de registre.
Cependant, ce n'est pas compatible avec auth que le panneau de connexion obtient une erreur:

2015/01/15 21:33:57 HTTP code 401, Docker will not send auth headers over HTTP.

Donc, si je veux utiliser auth je vais avoir besoin d'utiliser le protocole HTTPS. J'ai déjà ce serveur sert plus de HTTPS, mais cela ne fonctionne pas si je l'ai mis --l'insécurité-registre. Il semble y avoir un certificat de confiance, que je suis persuadé que je peux résoudre sur la non-boot2docker mais..

2) Pour un boot2docker client, je ne peux pas obtenir-l'insécurité-registre de travail ou de certificats de confiance?

Mise à JOUR 2

Suivantes cette pile d'échange question, j'ai réussi à ajouter le ca à ma machine virtuelle ubuntu et je peux maintenant utiliser de non boot2docker client. Cependant, il ya encore beaucoup de comportement étrange.

Même si mon actuel de l'utilisateur est un membre de l'docker groupe (donc je n'ai pas d'utiliser sudo) j'ai maintenant d'utiliser sudo ou j'obtiens l'erreur suivante lorsque vous essayez de vous connecter ou de traction de mon privé de registre

user@ubuntu:~$ docker login example.com:8080
WARNING: open /home/parallels/.dockercfg: permission denied

parallels@ubuntu:~$ docker pull example.com:8080/hw:1
WARNING: open /home/parallels/.dockercfg: permission denied

Et lors de l'exécution de conteneurs tiré de mon privé de registre pour la première fois, j'ai de les spécifier par l'ID de l'image - pas de leur nom.

source d'informationauteur ConfusedNoob