私はプライベートレジストリを作成しました。カールxx.xx.xx.xx:5000は大丈夫です。以下を実行して、画像をdocker private registryにプッシュします:docker Push xx.xx.xx.xx:5000/centos
戻る:http://xx.xx.xx.xx:5000/v1/repositories/centos/tags/latest
問題は、レジストリWebからすべての画像を取得する方法、または何でもコマンドする方法です。 docker registry apiから情報を見つけることができません。いずれかが役立ちますか? :)
プライベート レジストリ のv 0.7.0の時点で、次のことができます。
$ curl -X GET http://localhost:5000/v1/search?q=postgresql
jsonペイロードを取得します:
{"num_results": 1, "query": "postgresql", "results": [{"description": "", "name": "library/postgresql"}]}
ここでさらに背景を説明すると、レジストリを開始した方法です。
docker run \
-e SETTINGS_FLAVOR=local \
-e STORAGE_PATH=/registry \
-e SEARCH_BACKEND=sqlalchemy \
-e LOGLEVEL=DEBUG \
-p 5000:5000 \
registry
これで、Dockerクライアントから、HTTP APIや追加のツールを使用せずに、単純にプライベートレジストリを直接検索できます。
例えばセントス画像の検索:
docker search localhost:5000/centos
だから私はこれが急速に変化する分野であることを知っていますが、(2015-09-08現在) Docker Registry HTTP API V2 で次を見つけました:
GET /v2/_catalog
GET /v2/<name>/tags/list
それに基づいて、ローカルレジストリ(レジストリ:2 IMAGE ID 1e847b14150e365a95d76a9cc6b71cd67ca89905e3a0400fa44381ecf00890e1 on 2015-08-25T07:55:17.072)で次のように機能しました:
$ curl -X GET http://localhost:5000/v2/_catalog
{"repositories":["ubuntu"]}
$ curl -X GET http://localhost:5000/v2/ubuntu/tags/list
{"name":"ubuntu","tags":["latest"]}
現在、Docker Registry v2の検索サポートはありません。
トピックの長時間実行スレッド がありました。現在の計画では、最後に extension を使用した検索をサポートすることです。これは ready by v2.1 である必要があります。
回避策として、レジストリv2が実行されているマシンで次を実行します。
> docker exec -it <your_registry_container_id> bash
> ls /var/lib/registry/docker/registry/v2/repositories/
画像は、名前空間に対応するサブディレクトリにあります。 jwilder/nginx-proxy
「ライブラリ」だけを検索して、プライベートレジストリのすべてを取得できました。
docker search [my.registry.Host]:[port]/library
戻り値(例):
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
library/custom-image 0
library/another-image 0
library/hello-world 0
UIを提供し、プライベートレジストリを検索するatc-/docker-registry-webプロジェクトをインストールしました。 https://github.com/atc-/docker-registry-web
これはドッキングされており、次の方法で実行できます。
docker run -p 8080:8080 -e REG1 = http://registry_Host.name:5000/v1/atcol/docker-registry-ui
registry_ui_Host.name:8080
を参照して内容を確認します
すべての画像を一覧表示
docker search <registry_Host>:<registry_port>/
「vcs」などの画像を一覧表示する
docker search <registry_Host>:<registry_port>/vcs
現時点では、この情報をプライベートレジストリにはないインデックスによって保存する必要があるため、これを行う簡単な方法はありません。ただし、レジストリの起動方法に応じて、2つのオプションがあります。
docker diff <id_of_registry_container>
を試してコンテナーfsの変更に関する情報を取得できます。プッシュされた画像はすべて/ tmp/registry/repositories /のどこかにあるはずです「centos」を名前として使用した場合は、/ tmp/registry/repositories/library/centosにあるはずです。このフォルダには、画像構造を説明するテキストファイルが含まれます。実際のデータは/ tmp/registry/images /にあります。
1行で別の方法(必要に応じて実際のパス/ポートを置き換えます)。
例:一般的なレジストリを想定:2.0の起動、実行中のレジストリコンテナには画像とタグ名を保持するログファイルがあります。このようにデータを推定します:
grep -r -o "vars\.name=.* vars.reference=.*" /var/lib/docker/containers/* | cut -c 167-225 | sed 's/ver.*$//' | sed 's/vars\.name=//' | sed 's/ vars\.reference=/:/' | sort -u
必要な出力を得るには、カット値を微調整する必要がある場合があります。
@mreからの回答を変更して、1つのコマンドだけでリストを取得します(少なくともDocker Registry v2で有効)。
docker exec -it <your_registry_container_id> ls -a /var/lib/registry/docker/registry/v2/repositories/