2014-05-19 14 views
64

Zrobiłem prywatny rejestr, curl xx.xx.xx.xx: 5000 jest w porządku. wciskam obrazu do Docker prywatnym rejestrze wykonując: docker push xx.xx.xx.xx:5000/centos
powrót:
http://xx.xx.xx.xx:5000/v1/repositories/centos/tags/latestJak wyszukiwać obrazy z prywatnego rejestru 1.0 w oknie dokowanym?

pytanie brzmi, jak uzyskać wszystkie obrazy z sieci rejestru lub polecenia cokolwiek. Nie mogę znaleźć żadnych informacji z api rejestru doków. ktokolwiek pomaga? :)

+0

mam na myśli jak szukać obrazów z prywatny rejestr z linii poleceń lub http – edwardsbean

Odpowiedz

66

dzień v 0.7.0 prywatnej registry można zrobić:

$ curl -X GET http://localhost:5000/v1/search?q=postgresql 

a dostaniesz ładunek json:

{"num_results": 1, "query": "postgresql", "results": [{"description": "", "name": "library/postgresql"}]} 

dać więcej tła Oto jak zacząłem rejestr:

docker run \ 
     -e SETTINGS_FLAVOR=local \ 
     -e STORAGE_PATH=/registry \ 
     -e SEARCH_BACKEND=sqlalchemy \ 
     -e LOGLEVEL=DEBUG \ 
     -p 5000:5000 \ 
     registry 
+0

, więc jest to nieudokumentowana funkcja 'wyszukiwania' –

+4

zobacz odniesienie dla tego problemu https://github.com/docker/docker-registry/issues/63' curl -X GET http: // localhost: 5000/v1/search' może wyświetlać wszystkie obrazy –

+8

Od wersji api v2 jest to wykonywane przez 'http: // localhost: 5000/v2/_catalog' https: //docs.docker. com/registry/spec/api/ – mimo

3

Obecnie AFAIK nie ma łatwego sposobu, aby to zrobić, ponieważ ta informacja powinna być przechowywana przez indeks, którego nie ma rejestr prywatny. Ale w zależności od sposobu uruchomienia rejestru masz 2 opcje:

  1. jeśli rozpoczął rejestru bez -v do przechowywania danych w osobnym folderze gospodarza można spróbować z docker diff <id_of_registry_container> z tym należy uzyskać informacje o zmianach w pojemniku fs. Wszystkie obrazy powinny być zepchnięte gdzieś w/tmp/rejestru/repozytorium/
  2. jeśli rozpoczął z rejestru -v prostu sprawdzić zawartość zamontowanego katalogu na hoście

Jeśli użyto „CentOS” jako nazwa powinna być w/tmp/registry/reositories/library/centos. Ten folder będzie zawierał pliki tekstowe opisujące strukturę obrazu. Aktualne dane znajdują się w/tmp/registry/images /.

+0

przepraszam, mam na myśli, jak wyszukiwać obrazy z prywatnego rejestru przez linię poleceń lub http – edwardsbean

+0

Tak wiem ale AFAIK bez indeksu nie można przeszukiwać obrazów w rejestrze prywatnym. W rejestrze znajduje się metoda '/ v1/search' api, ale wymaga ona zaplecza indeksów. Istnieje podstawowa implementacja indeksu w kodzie rejestru prywatnego (https://github.com/dotcloud/docker-registry/blob/master/docker_registry/index.py), ale ma ona jedynie zapewnić podstawowe funkcje w trybie autonomicznym. Kilka dni temu znalazłem to: https://github.com/ekristen/docker-index, ale nie miałem czasu na testowanie. – odk

+0

dziękuję, spróbuję: github.com/ekristen/docker-index – edwardsbean

5

Zainstalowałem projekt sieci atc- docker-registry, który daje mi interfejs użytkownika i wyszukiwanie r mój prywatny rejestr. https://github.com/atc-/docker-registry-web

Jest dockerised i można po prostu uruchomić go przez

 
docker run -p 8080:8080 -e REG1=http://registry_host.name:5000/v1/ atcol/docker-registry-ui 

i przeglądu zawartości przeglądanie do registry_ui_host.name:8080

77

teraz z klientem Döcker można po prostu wyszukać swój prywatny rejestr bezpośrednio, bez korzystania z protokołu HTTP Interfejsy API lub dodatkowe narzędzia:

np. szukając centos obrazka:

docker search localhost:5000/centos

+0

Dla przypomnienia, działało to dla mnie przy użyciu Dockera w wersji 1.3.1, kompilacji 4e9bbfa –

+3

To powinno być zdecydowanie wymienione na stronie pomocy Cli! https: //docs.docker.com/reference/commandline/cli/# search –

+1

@MarcelloRomani Myślę, że jest to poprawny link: https://docs.docker.com/engine/reference/commandline/search/ – Hexaholic

13

był w stanie uzyskać wszystko w moim prywatnym rejestrze z powrotem, szukając dla 'biblioteki':

docker search [my.registry.host]:[port]/library 

Returns (EG):

NAME     DESCRIPTION STARS  OFFICIAL AUTOMATED 
library/custom-image     0      
library/another-image     0      
library/hello-world     0 
+24

Z dokowaniem 1.8.1 na Ubuntu 14.04 otrzymuję komunikat "Odpowiedź błędu od demona: nieoczekiwany kod statusu 404", co jest nie tak? – carloreggiani

+4

Mam ten sam problem z komendą "dokowane wyszukanie repositroy_ip: 5000/busybox" zwraca 404, ale poprzednie polecenie "docker push repository_ip: 5000/busybox" powiodło się – ksopyla

15

Obecnie jest brak obsługi wyszukiwania dla rejestru Docker v2.

Był long-running thread on the topic. Obecny plan ma na celu ułatwienie wyszukiwania z końcówką extension, która powinna być ready by v2.1.

Jako obejście, należy wykonać następujące czynności na komputerze, na którym rejestr v2 jest uruchomiony:

> docker exec -it <your_registry_container_id> bash 
> ls /var/lib/registry/docker/registry/v2/repositories/ 

obrazy są w podkatalogów odpowiadających ich nazw, na przykład jwilder/nginx-proxy

0

Inna metoda to jedna linia (w razie potrzeby zastąp aktualną ścieżkę/porty). Przykład: zakłada ogólny rejestr: 2.0 uruchomienie Uruchomiony kontener rejestru ma plik dziennika, który przechowuje nazwy obrazów i znaczników. Ekstrapoluję dane w następujący sposób:

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

konieczne może być dostosowanie wartości cięcia, aby uzyskać pożądaną wydajność.

56

Tak wiem, że to szybko zmieniające się pole, ale (od 2015-09-08) Znalazłem następujące w Docker Registry HTTP API V2:

Repozytoriami nieruchomosci (link)

GET /v2/_catalog 

listingu wizerunku tagi (link)

GET /v2/<name>/tags/list 

oparciu o które następuje pracował dla mnie na lokalnym rejestru (rejestr: 2 IMAGE ID 1e847b14150e365a95d76a9c c6b71cd67ca89905e3a0400fa44381ecf00890e1 stworzony na 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"]} 
+0

działa z dockerem v2 +, idealne – Hoto

3

listy wszystkie zdjęcia

docker search <registry_host>:<registry_port>/ 

zdjęć Lista typu 'VCS'

docker search <registry_host>:<registry_port>/vcs 
Powiązane problemy