30

プライベート レジストリでイメージを管理する方法が見つかりません。IDはわかっているので画像をプッシュまたはプルできますが、プッシュされた画像のリストを取得するにはどうすればよいですか?

たとえば、自分の組織のプライベート レジストリで利用可能な画像を見たい人を考えてみましょう。彼女はどうすればいいですか?

私が間違っていない限り、公開レジストリで index.docker.io が行うようなレジストリ コンテンツを検出するための API または Web UI が見つかりません。

これを管理するオープンソース プロジェクトはありますか?

ありがとう。

4

6 に答える 6

15

これを管理するオープンソース プロジェクトはありますか?

1 対多のプライベート レジストリの管理を提供するコンテナー化された Web アプリケーションがあります。その名前は Docker Registry UI で、FOSS です。

ソースは Githubにあり、次のようにコンテナーで実行できます。

docker run -p 8080:8080 -v my_data_dir:/var/lib/h2/ atcol/docker-registry-ui

免責事項:自分でウェブアプリを見つけることができなかったので、私はウェブアプリを書きました。これがあなたの質問に答えると思います(引用)。

于 2014-06-22T16:41:32.657 に答える
12

ありがとうトーマス!

検索 API の使用を許可するには、次のように環境変数 SEARCH_BACKEND の値を指定してコンテナーを開始する必要があります。

docker run -d -e SEARCH_BACKEND=sqlalchemy -p 5000:5000 --name registry samalba/docker-registry

次に、このクエリの結果があります:

GET http://registry_host:5000/v1/search?q=base

Result :
{ 
   "num_results": 1, 
   "query": "base", 
   "results": [{"description": "", "name": "test/base-img"}]
}

すべての画像を一覧表示するには、次のようにします。

GET http://registry_host:5000/v1/search

Result :
{ 
   "num_results": 2, 
   "query": "", 
   "results": [
       {"description": "", "name": "test/base-img"},
       {"description": "", "name": "test/base-test"}]
}

イメージの利用可能なバージョンを知るには:

GET http://localhost:5000/v1/repositories/**test/base-img**/tags

Result :
{
  "0.1": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13",
  "0.2": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13",
  "0.3": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13"
}
于 2014-05-20T12:57:56.307 に答える
11

github で見つけることができるdocker-registry-frontendを作成しました。プライベート レジストリを参照し、Docker レジストリ API v1 で利用できるほとんどすべてのことを実行できます。さらに、Docker コンテナーとして単独で実行できます。

いくつかのスクリーンショットを含む基本的な機能のリストは次のとおりです: https://github.com/kwk/docker-registry-frontend/wiki/Features . これらの機能に加えて、SSL 暗号化と Kerberos 認証がサポートされています。

于 2015-02-04T10:36:06.810 に答える
5

プライベート レジストリのフロントエンドを紹介したいと思います。github または dockerhub から試してみてください。また、インターフェースのスクリーンショットもそこにあります。

要約すると:
- 内部データベース (BoltBD) は、情報を保存する機能を提供し、その結果、他のプロジェクトのように API を直接呼び出した後よりもはるかに高速に応答します
- アプリは、次のようなレジストリから情報を解析、保存、および表示できます。
- 画像レイヤー情報:
- 名前/タグ
- 画像サイズとプッシュ数
- アップロードとプッシュの日付
- 画像作成コマンドの履歴
- 複数のレジストリがあり、それらを 1 か所で観察する場合、複数のリポジトリを設定できます
- 統計を表示しますかなり、日付に関するタグのアップロード数と画像サイズの曲線を描く


更新 2017-02-15
これまでのところ、以下も追加されました。

  • 親を見つける
  • 親のツリーグラフを表示
  • 画像削除
  • ベアラー トークン認証のサポート
于 2016-06-20T10:26:39.337 に答える
1

私の知る限り、Docker レジストリには REST API があり、Docker 自体と非常によく似ています。ドキュメントはhttp://docs.docker.io/reference/api/registry_api/にあります。しかし、一見しただけでは、すべての画像を一覧表示する方法はわかりません。

公式インデックス用の REST API もあります (情報はhttp://docs.docker.io/reference/api/docker-io_api/にあります)。

編集

私は Docker レジストリ API をテストしたところですが、それほど自明ではありません。特定のリポジトリのすべてのイメージを照会できます。私の場合、私のリポジトリは「thomas/busybox」と呼ばれています。次のように呼び出して、そこにあるすべての画像を照会できます。

https://my-private-registry.com/v1/repositories/thomas/busybox/images

Result:

[
  {
    "id": "2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739"
  },
  {
    "id": "6c991eb934609424f761d3d0a7c79f4f72b76db286aa02e617659ac116aa7758"
  },
  {
    "id": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a"
  },
  {
    "id": "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"
  }
]

これで、リポジトリに 4 つのイメージがあり、すべてのイメージをクエリできることがわかりました。最初の画像のクエリは次のようになります。

https://my-private-registry.com/v1/images/2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739/json

Result:

{
  "id": "2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739",
  "parent": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a",
  "created": "2014-04-24T15:59:59.47081913Z",
  "container": "d15320d6935ca35bc4198e373f29e730f4c53cce32b3809c2fecec22eb30018b",
  "container_config": {
    "Hostname": "4964db5b599b",
    ...
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Env": [
      "HOME=\/",
      "PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin"
    ],
    "Cmd": [
      "\/bin\/sh",
      "-c",
      "#(nop) CMD [\/bin\/sh -c \/bin\/sh]"
    ],
    "Image": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a",
    ...
    "OnBuild": [

    ]
  },
  "docker_version": "0.10.0",
  "author": "J\u00c3\u00a9r\u00c3\u00b4me Petazzoni <jerome@docker.com>",
  "config": {
    "Hostname": "4964db5b599b",
    "Domainname": "",
    "User": "",
    "Memory": 0,
    ...
    "Env": [
      "HOME=\/",
      "PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin"
    ],
    "Cmd": [
      "\/bin\/sh",
      "-c",
      "\/bin\/sh"
    ],
    "Image": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a",
    ...
    "OnBuild": [

    ]
  },
  "architecture": "amd64",
  "os": "linux",
  "Size": 0
}

画像を検索することもできますが、結果が得られません。

https://my-private-registry.com/v1/search?q=thomas

Result:

{"num_results": 0, "query": "thomas", "results": []}
于 2014-05-17T10:15:11.910 に答える
0

Sonatype Nexus Repository Manager 3.0 にはDocker 用のプライベート レジストリがあります

于 2016-06-08T20:18:48.140 に答える