Docker registre 2.0 API v2
J'ai tiré et l'installation du local docker registre:2.0
J'ai essayé de pousser une image correctement, mais lorsque j'ai jamais essayer de chercher une image-je obtenir 404:
root@ip-10-232-0-153:~# curl -v -X GET http://localhost:5000/v2/search
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /v2/search HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:5000
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< Date: Fri, 08 May 2015 00:00:45 GMT
< Content-Length: 19
<
404 page not found
* Connection #0 to host localhost left intact
Aussi quand j'essaie de curl localhost:5000, je viens d'obtenir une erreur 404:
404 page not found
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR (14 avril 2016): pas Encore ici, dans le distribution de la feuille de route, mais ici, c'est un question en particulier à propos de la recherche.
Mise à JOUR (12 novembre 2015): L'API points de terminaison encore n'existent pas encore et ne sont pas encore dans le Panneau de Registre feuille de route.
Le problème ici est que la nouveau v2 Docker registre ne prend pas en charge cet effet particulier encore, comme de cette question et la réponse. Vous pouvez le vérifier la source elle-même pour la route des points de terminaison, et vous verrez que la plupart de l'API points de terminaison impliquent des opérations simples comme le téléchargement et le marquage, mais pas encore la mise en œuvre du point de terminaison de recherche. Il est important ici de noter que la v2 de registre est un complètement autre projet que la v1 de registre. Il est même écrit dans une langue entièrement différente (v1 était un projet de Python, alors que la v2 utilise Go, qui est plus en ligne avec le reste de l'Docker projets). Il m'a fallu un peu de temps et de sérieux de lecture pour comprendre la dichotomie entre les registres. Il vaut la peine de regarder à ce Github question sur la v2 de registre pour une plongée dans une discussion récente sur l'état de la v2 de registre, ainsi qu'une discussion sur l'endroit où ils l'ai pris.
Donc il n'y a pas de point de terminaison de recherche dans la v2 registre encore. Vous pouvez inscrire votre image par tag ou par le nom de l'image elle-même comme mentionné dans le numéro de la tâche 8 dans cette documentation.
function curldocker() { curl --unix-socket /var/run/docker.sock $2 $3 $4 $5 $6 $7 $8 $9 http://v2$1 }
Cela vous permet d'exécuter des commandes commecurldocker /containers/json
pour obtenir une liste de vos conteneurs. Pour les docs, voir la officiel docssi vous êtes sur windows, voici un script Powershell pour interroger la
v2/_catalog
à partir de windows avec base http auth.https://gist.github.com/so0k/b59382ea7fd959cf7040
Pour info, à cette fin, vous devez
docker pull distribution/registry:master
au lieu dedocker pull registry:2
. leregistry:2
version de l'image est actuellement2.0.1
qui ne vient pas avec le catalogue de point de terminaison.master
. La qualité doit être décent, mais il estmaster
.Je suppose que la meilleure façon de vérifier si un menu fixe de l'image qui est présent est à l'aide de la Docker V2 API REST Tags sur la liste de
Exemple:-
si le résultat ci-dessus renvoie 200Ok avec une liste de balises d'image, alors nous savons que l'image existe
d'autre si vous voyez quelque chose comme
alors vous savez certainement que l'image n'existe pas.
Sur Linux (Centos 7), j'utilise aussi longtemps que le registre de l'image est le seul conteneur en cours d'exécution: Ce sera la liste de toutes les images poussé à l'resistry/conteneur.
Je l'ai mis dans un script et tordu la coupe params pour obtenir ce que je voulais comme la longueur des noms des images varie un peu. exécuter en tant qu'sudo "script-name.sh"
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
et que le volume est mappé à/var/lib/
? Je pense que cela dépend de comment vous avez lancé le registre et ne pas utiliser le nouveau catalogue de point de terminaison. à moins que vousdocker exec
ce script à l'encontre de l'image du registre soutenu par fs?Aujourd'hui j'ai essayé le
registry:master
de l'image, mais n'existe pas.Vous pouvez maintenant exécuter le
registry:2
et sera le point de terminaison.Si je visite
http://localhost:5000/v2/_catalog
dans ma machine, je peux voir cette sortie{"repositories":["ubuntu"]}
, ce qui est correct. Aussi essayéhttp://localhost:5000/v2/ubuntu/tags/list
et a obtenu cette réponse{"name":"ubuntu","tags":["latest"]}
, de sorte qu'il fonctionne.Vous pouvez prendre un coup d'oeil à la doc.
master
en images officielles. Si vous voulezmaster
, vous devez utiliserdistribution/registry:master
. Ce n'est pas une image officielle et nous recommandons de ne pas exécuter dans la production.Docker registre des fonctionnalités de recherche v2 n'est pas pris en charge au moment de cette écriture.
Voir la discussion depuis Février 2015: https://github.com/docker/distribution/issues/206
Registre V2 est comme déposer des images dans un sac noir, espère que vous vous souvenez de ce que vous avez déposé et ce que vous avez nommé l'image. Ne pensez même pas à la suppression d'une image. Je ne veux pas à déchirer et remplacer V2 avec V1; même si V1 œuvres et dispose de plusieurs outils qui fonctionnent avec V1, y compris la recherche et les supprimer. J'ai commencé avec de registre V2 de la commercialisation; l'amélioration de la sécurité et de la performance.
Ubuntu 14.04.3 LTS, CoreOS 723.3.0
registre github.com/docker/distribution v2.1.1
J'ai écrit un script, nommé de vue privé de registre à la recherche de registre V2 REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY. Il fonctionne sur n'importe quel de mes systèmes qui a le REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY monté. Laissez-moi savoir de toute modification que vous faites, merci.
Script:
https://github.com/BradleyA/Search-docker-registry-v2-script.1.0
De sortie:
La dernière version de Docker Registre disponible à partir de https://github.com/docker/distribution prend en charge Catalogue de l'API. (v2/_catalog). Cela permet de la capacité de recherche.
Si vous êtes intéressé, vous pouvez essayer de docker image registre de la CLI, je l'ai construite pour le rendre facile pour utiliser les fonctions de recherche dans le nouveau menu fixe Registre v2 distribution 🙁https://github.com/vivekjuneja/docker_registry_cli)
docker pull distribution/registry:master
au lieu dedocker pull registry:2
.registry:2
est actuellement2.0.1
et catalogue de point de terminaison n'est mise en œuvre dans 2.0.4 et pas encore sorti.Correcte.
C'est simplement un exemple de mise en œuvre qui fonctionne pour en obtenir la liste des images. Oui, il est supposé que c'est un générique registry2.0 de démarrage. par exemple
$ sudo docker run --nom=myregistry -d-p port:port myregistry:1.0.
Essentiellement le fait est que chaque conteneur a un fichier journal ...quelques-chemin/conteneurs... ID-json.journal. Dans ce fichier sont stockées les informations au sujet de images poussé à l'exécution du registre. De sorte qu'il peut être utilisé pour extrapoler une liste d'images. Comme raw comme il est, c'est mieux que rien. Pas une solution à la plus grande recherche/catalogue de la question, mais un moyen d'obtenir une image de la liste. C'est un très personnalisé solution de contournement pour résoudre un problème tout en attendant le "officielle" fix.