web-dev-qa-db-ja.com

Dockerプライベートレジストリを管理するためのAPIまたはWeb UIプロジェクトはありますか?

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

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

間違っていない限り、index.docker.ioがパブリックレジストリで行うようなレジストリコンテンツを発見するためのAPIやWeb UIを見つけることができません。

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

ありがとう。

30
bwilcox

ありがとうトーマス!

検索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"
}
12
bwilcox

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

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

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

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

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

15
Alex

docker-registry-frontend を書いていますが、これはgithubで見つけることができます。プライベートレジストリを参照し、DockerレジストリAPI v1を介して利用可能なほぼすべての操作を実行できます。さらに、単独でdockerコンテナーとして実行できます。

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

11
Konrad Kleine

プライベートレジストリのフロントエンド をご紹介します。githubまたはdockerhubから試してみてください。また、そこにインターフェイスのスクリーンショットを見つけることができます。

まとめると:
[。
-アプリは、次のようなレジストリの情報を解析、保存、表示できます。
-画像レイヤー情報:
- 名札
-画像サイズとプッシュ数
-日付のアップロードとプッシュ
-イメージ作成コマンド履歴
-複数のレジストリがある場合に複数のリポジトリを設定し、それらを1か所で観察することができます。
-統計をきれいに表示し、日付に関するタグのアップロード数と画像サイズの曲線を描きます


更新2017-02-15
これまでのところも追加されました:

  • 親を見つける
  • 親のツリーグラフを表示
  • 画像削除
  • ベアラートークン認証のサポート
4
Evedel

私の知る限り、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 <[email protected]>",
  "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": []}
1
Thomas Uhrig

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

0
Praneeth