2014-05-19 17 views
64

Tôi đã đăng ký riêng tư, curl xx.xx.xx.xx: 5000 là ok. Tôi đẩy một hình ảnh vào registry tin Docker bằng cách thực hiện: docker push xx.xx.xx.xx:5000/centos
nó trở lại:
http://xx.xx.xx.xx:5000/v1/repositories/centos/tags/latestCách tìm kiếm hình ảnh từ đăng ký riêng tư 1.0 trong docker?

câu hỏi là làm thế nào để có được tất cả các hình ảnh từ web registry hoặc lệnh bất cứ điều gì. Tôi không thể tìm thấy bất kỳ thông tin nào từ docker registry api. có ai giúp không? :)

+0

tôi có nghĩa là làm thế nào để hình ảnh từ tìm kiếm đăng ký riêng bằng dòng lệnh hoặc http – edwardsbean

Trả lời

66

Tính đến v 0.7.0 của riêng registry bạn có thể làm:

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

và bạn sẽ nhận được một tải trọng json:

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

để cung cấp cho nhiều nền ở đây là làm thế nào tôi bắt đầu của tôi đăng ký:

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

vì vậy đây là tính năng không có giấy tờ cho 'tìm kiếm ' –

+4

xem tham chiếu cho vấn đề này https://github.com/docker/docker-registry/issues/63' curl -X GET http: // localhost: 5000/v1/search' có thể liệt kê tất cả các hình ảnh –

+8

Kể từ api v2, nó được thực hiện với 'http: // localhost: 5000/v2/_catalog' https: //docs.docker. com/registry/spec/api/ – mimo

3

Hiện tại AFAIK không có cách nào dễ dàng để thực hiện việc này vì thông tin này sẽ được lưu trữ theo chỉ mục mà sổ đăng ký riêng tư không có. Nhưng tùy thuộc vào cách bạn bắt đầu đăng ký bạn có 2 lựa chọn:

  1. nếu bạn bắt đầu đăng ký mà không -v để lưu trữ dữ liệu trong thư mục máy chủ riêng biệt, bạn có thể thử với docker diff <id_of_registry_container> với điều này bạn sẽ nhận được thông tin về những thay đổi trong fs chứa. Tất cả hình ảnh đẩy nên đâu đó trong/tmp/đăng ký/kho/
  2. nếu bạn bắt đầu đăng ký với -v chỉ cần kiểm tra nội dung của thư mục gắn trên máy chủ

Nếu bạn sử dụng "centos" như tên gọi nó phải ở trong/tmp/đăng ký/kho/thư viện/centos. Thư mục này sẽ chứa các tệp văn bản mô tả cấu trúc hình ảnh. Dữ liệu thực tế nằm trong/tmp/registry/images /.

+0

xin lỗi, ý tôi là cách tìm kiếm hình ảnh từ đăng ký riêng bằng dòng lệnh hoặc http – edwardsbean

+0

Có tôi biết nhưng AFAIK không có chỉ mục mà bạn không thể tìm kiếm hình ảnh trong sổ đăng ký riêng tư. Có phương thức api '/ v1/search' trong registry nhưng nó yêu cầu backend index. Có chỉ số cơ bản thực hiện trong mã đăng ký riêng (https://github.com/dotcloud/docker-registry/blob/master/docker_registry/index.py) nhưng nó chỉ cung cấp các chức năng cơ bản ở chế độ độc lập. Vài ngày trước, tôi thấy điều này: https://github.com/ekristen/docker-index nhưng không có thời gian để kiểm tra. – odk

+0

cảm ơn, tôi sẽ thử: github.com/ekristen/docker-index – edwardsbean

5

Tôi đã cài đặt dự án atc-/docker-registry-web cung cấp cho tôi giao diện người dùng và tìm kiếm r đăng ký riêng của tôi. https://github.com/atc-/docker-registry-web

Nó được dockerised và bạn chỉ có thể chạy nó bằng cách

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

và xem xét nội dung bằng cách duyệt tới registry_ui_host.name:8080

77

Bây giờ từ khách hàng Docker bạn chỉ có thể tìm kiếm registry tin của bạn trực tiếp mà không sử dụng HTTP API hoặc bất kỳ công cụ bổ sung nào:

ví dụ: tìm kiếm centos ảnh:

docker search localhost:5000/centos

+0

Đối với hồ sơ, điều này làm việc cho tôi bằng cách sử dụng Docker phiên bản 1.3.1, xây dựng 4e9bbfa –

+3

Điều này nên được đề cập rõ ràng trên trang trợ giúp của cli! https: //docs.docker.com/reference/commandline/cli/# search –

+1

@MarcelloRomani Tôi nghĩ đây là liên kết chính xác: https://docs.docker.com/engine/reference/commandline/search/ – Hexaholic

13

Đã có thể nhận tất cả mọi thứ trong registry tin của tôi trở lại bằng cách tìm kiếm chỉ dành riêng cho 'thư viện':

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

Returns (ví dụ):

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

Với docker 1.8.1 trên Ubuntu 14.04, tôi nhận được 'Phản hồi lỗi từ daemon: Mã trạng thái không mong muốn 404', có vấn đề gì? – carloreggiani

+4

Tôi có cùng một vấn đề lệnh 'docker tìm kiếm repositroy_ip: 5000/busybox' trả về 404, nhưng lệnh trước đó 'docker push repository_ip: 5000/busybox' đã thành công – ksopyla

15

Hiện tại có không hỗ trợ tìm kiếm cho Docker Registry v2.

Có một số long-running thread on the topic. Gói hiện tại là hỗ trợ tìm kiếm với số extension ở cuối, phải là ready by v2.1.

Là một workaround, thực hiện như sau trên máy tính này nơi v2 registry của bạn đang chạy:

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

Các hình ảnh trong thư mục con tương ứng với không gian tên của họ, ví dụ jwilder/nginx-proxy

0

Một phương pháp khác một dòng (thay thế đường dẫn/cổng thực tế của bạn nếu cần). Ví dụ: giả sử đăng ký chung: 2.0 khởi động Vùng chứa đăng ký đang chạy có tệp nhật ký chứa tên hình ảnh và thẻ. Tôi ngoại suy dữ liệu như sau:

grep -r -o "vars.name =. * Vars.reference =. "/var/lib/docker/containers/ | cắt -c 167-225 | sed 's/ver. * $ //' | sed 's/vars.name = //' | sed 's/vars.reference = /: /' | sắp xếp -u

bạn có thể cần phải tinh chỉnh giá trị cắt để có được kết quả mong muốn.

56

Vì vậy, tôi biết đây là một lĩnh vực thay đổi nhanh chóng nhưng (như của 2015/09/08) Tôi tìm thấy sau trong Docker Registry HTTP API V2:

Repositories Liệt kê (link)

GET /v2/_catalog 

Bảng liệt kê Hình ảnh Thẻ (link)

GET /v2/<name>/tags/list 

trên cơ sở đó sau đây làm việc cho tôi trên một khu vực registry (registry: ID 1e847b14150e365a95d76a9c 2 IMAGE c6b71cd67ca89905e3a0400fa44381ecf00890e1 tạo ra trên 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

nó hoạt động với docker v2 +, hoàn hảo – Hoto

3

Liệt kê tất cả các hình ảnh

docker search <registry_host>:<registry_port>/ 

Danh sách hình ảnh như 'vcs'

docker search <registry_host>:<registry_port>/vcs 
Các vấn đề liên quan