2014-11-21 17 views
9

Tôi đang gặp rắc rối kéo hình ảnh đẩy lên một registry cá nhân và nhận được:"tag mới nhất không tìm thấy" trên Docker pull với registry tin

Tag mới nhất không tìm thấy trong kho lưu trữ

Tôi đang sử dụng container registry mặc định được cung cấp bởi Docker:

# docker images 
REPOSITORY   TAG     IMAGE ID   CREATED    VIRTUAL SIZE 
registry   latest    7e2db37c6564  8 days ago   411.6 MB 
janos/wheezy  latest    900e813f1fd9  11 months ago  218.6 MB 

là một thử nghiệm, chúng ta hãy nói rằng tôi muốn có một phiên bản địa phương của khò khè:

# docker tag janos/wheezy staging-docker.mysite.nl/myself/wheezy 
# docker push staging-docker.mysite.nl/myself/wheezy 
The push refers to a repository [staging-docker.mysite.nl/myself/wheezy] (len: 1) 
Sending image list 
Pushing repository staging-docker.mysite.nl/myself/wheezy (1 tags) 
7af801e4faa1: Pushing [==================================================>] 226.3 MB/226.3 MB 
2014/11/21 16:06:38 

Hình ảnh dường như có mặt ở đó:

# docker images 
REPOSITORY        TAG     IMAGE ID   CREATED    VIRTUAL SIZE 
registry        latest    7e2db37c6564  8 days ago   411.6 MB 
staging-docker.mysite.nl/myself/wheezy latest    900e813f1fd9  11 months ago  218.6 MB 
janos/wheezy       latest    900e813f1fd9  11 months ago  218.6 MB 

Và tại địa phương tôi có thể bắt đầu nó:

# docker run -i -t staging-docker.mysite.nl/myself/wheezy /bin/bash 
[email protected]:/# ls 
bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var 
[email protected]:/# exit 

Nhưng khi cố gắng chạy hoặc kéo nó từ máy chủ khác, tôi nhận được "Tag mới nhất không tìm thấy "

# docker pull staging-docker.mysite.nl/myself/wheezy 
Pulling repository staging-docker.mysite.nl/myself/wheezy 
2014/11/21 16:08:15 Tag latest not found in repository staging-docker.mysite.nl/myself/wheezy 

Thêm rõ ràng" mới nhất "không hữu ích. Lỗi tương tự.

tôi có thể thấy các cuộc gọi đến đăng ký, vì vậy tôi không inadvertedly sử dụng khác:

172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/_ping HTTP/1.0" 200 1439 "-" "Go 1.1 package http" 
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/_ping HTTP/1.0" 200 1439 "-" "Go 1.1 package http" 
21/Nov/2014:15:08:15 +0000 DEBUG: args = {'namespace': u'myself', 'repository': u'wheezy'} 
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/repositories/myself/wheezy/images HTTP/1.0" 200 164 "-" "docker/1.3.1 go/go1.3.3 git-commit/4e9bbfa kernel/3.16.0-0.bpo.2-amd64 os/linux arch/amd64" 
21/Nov/2014:15:08:15 +0000 DEBUG: args = {'namespace': u'myself', 'repository': u'wheezy'} 
21/Nov/2014:15:08:15 +0000 DEBUG: [get_tags] namespace=myself; repository=wheezy 
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/repositories/myself/wheezy/tags HTTP/1.0" 200 2 "-" "docker/1.3.1 go/go1.3.3 git-commit/4e9bbfa kernel/3.16.0-0.bpo.2-amd64 os/linux arch/amd64" 

Và khi kiểm tra các thẻ của hình ảnh bằng tay, họ có thực sự trống rỗng:

# curl -k https://staging-docker.mysite.nl/v1/repositories/myself/wheezy/tags 
{} 

Câu hỏi 1: làm thế nào mà nó là trống ở nơi đầu tiên, kể từ Docker luôn luôn sử dụng mới nhất ...

Câu hỏi 2: nếu bằng cách nào đó mọi thứ trở nên rối loạn và thẻ mới nhất thực sự biến mất, làm sao tôi vẫn có thể bắt đầu nó lên cục bộ?

phiên bản Docker đều giống nhau trên cả hai máy chủ:

# docker version 
Client version: 1.3.1 
Client API version: 1.15 
Go version (client): go1.3.3 
Git commit (client): 4e9bbfa 
OS/Arch (client): linux/amd64 
Server version: 1.3.1 
Server API version: 1.15 
Go version (server): go1.3.3 
Git commit (server): 4e9bbfa 
+0

Thẻ mới nhất vẫn còn đó, vấn đề là với sổ đăng ký từ xa. Bạn có thể thử chạy một địa phương? ('docker run -p5000: 5000 registry') và cố gắng đẩy/kéo từ nó? ('docker tag mình/wheezy 127.0.0.1 sugg000/myself/wheezy && docker push 127.0.0.1: 5000/bản thân/wheezy') để xem nó có hoạt động hay không. – creack

+0

bạn nói đúng. Điều đó đã làm việc (đã phải sử dụng --insecure-kho) nhưng tôi vẫn còn mơ hồ những gì đã đi sai trong lần đầu tiên. Điều duy nhất tôi có thể tưởng tượng là tôi đã không thay đổi bất cứ điều gì trong hình ảnh cơ bản (janos/wheezy) trước khi gắn thẻ lại một lần nữa như bản thân mình/wheezy. Lần này tôi đã * thay đổi nó (một lần chạm đơn giản TEST_REPO trong thư mục gốc) trước khi cam kết hình ảnh và sau đó gắn thẻ nó, và nó hoạt động tốt. Đoán tôi vẫn còn mơ hồ về logic gắn thẻ. Cảm ơn! – Hans

+0

Đây là cũ và gần như chắc chắn không phải là một vấn đề nữa, nhưng tôi chỉ có vấn đề này sau khi chuyển đổi một repo từ công chúng sang tư nhân. Đăng nhập lại trên dòng lệnh đã giải quyết nó cho tôi. – MyCompassSpins

Trả lời

0

Câu hỏi 1:

Nó sẽ là vấn đề trong registry tin từ xa của bạn, điều này được khẳng định với lệnh của bạn

curl -k https://staging-docker.mysite.nl/v1/repositories/myself/wheezy/tags 

Câu hỏi 2

thẻ chỉ là bí danh cho hình ảnh Docker, nếu bạn chạy cục bộ trong cách đặt tên khác nhau, tất cả chúng đều chạy trốn khỏi những hình ảnh Docker cùng, không có sự khác biệt.

Và thẻ latest không bị mất tại địa phương, được khẳng định bởi lệnh của bạn

$ docker images 

Giải pháp

Kiểm tra Docker thiết lập registry riêng của bạn và theo dõi các bản ghi để xem những gì là vấn đề, nếu bạn muốn giải quyết nó hoàn toàn, bạn cần phải đính kèm thêm thông tin gỡ lỗi trong registry cá nhân từ xa.

Ngoài ra cách thiết lập đăng ký từ xa giống như phiên bản và nền tảng.

1

Tôi nhận thấy rằng thông báo lỗi của trình khách Docker không phải lúc nào cũng phản ánh nguyên nhân gốc. Tôi đã nhìn thấy tình trạng này xảy ra khi trình khách docker không được xác thực với máy chủ, hoặc khi bắt tay SSL không thành công vì một lý do nào đó. Cho rằng bạn đã không sử dụng --insecure-đăng ký, nó có vẻ như sau này.

Các vấn đề liên quan