मैं निम्नलिखित द्वारा एक निजी डॉकर रजिस्ट्री बनाने की कोशिश कर रहा हूं इस गाइड. मैंने एक उबंटू छवि को डाउनलोड और टैग किया है और एक रजिस्ट्री कंटेनर बनाया है और अब मैं इसे अपनी रजिस्ट्री में धकेलने का इरादा रखता हूं, लेकिन जब मैं कॉल करता हूं sudo docker push localhost:6000/Ubuntu
मुझे निम्नलिखित आउटपुट मिलता है:
The push refers to a repository [localhost:6000/ubuntu]Put http://localhost:6000/v1/repositories/ubuntu/: http: can't write HTTP request on broken connection
मैं जो कुछ भी ढूंढ पाया हूं वह यह है कि "एचटीटीपी अनुरोध नहीं लिख सकता" त्रुटि एक गो त्रुटि है, लेकिन दुर्भाग्य से मुझे इससे संबंधित कुछ भी नहीं मिल पाया है कि मैं इसे डॉकर में कैसे हल कर सकता हूं । मैंने डॉकर कमांड के लिए लॉग खोजने की भी कोशिश की है ताकि मैं इस मुद्दे पर अधिक विवरण प्राप्त करने का प्रयास कर सकूं, लेकिन ऐसा लगता है कि लॉग केवल कंटेनरों के लिए उपलब्ध हैं, और मैं इसे कंटेनर पर नहीं चला रहा हूं ।
मैं इस त्रुटि को हल करने के बारे में कैसे जा सकता हूं?
अद्यतन करें
मैंने कुछ भी नहीं बदलने के बाद फिर से कमांड चलाया और एक अलग त्रुटि मिली:
Put http://localhost:6000/v1/repositories/ubuntu/: read tcp [::1]:33417->[::1]:6000: read: connection reset by peer
UPDATE2
और फिर, यह कुछ भी नहीं बदलने के बाद भाग गया और अब हो रही है:
Put http://localhost:6000/v1/repositories/ubuntu/: EOF
UPDATE3
थोड़ा गड़बड़ करने के बाद, मैंने पाया है कि जिस छवि को मैंने अपनी रजिस्ट्री में धकेलने की कोशिश की, वह मेरी डॉकर छवियों की सूची में दिखाई देती है, लेकिन मैं इसे खींचने में सक्षम नहीं हूं ।
UPDATE4
थोड़ा और गड़बड़ करने के बाद, ऐसा लगता है कि मैंने अपनी निजी रजिस्ट्री को जो पोर्ट सौंपा है, वह आईपीवी 6 के बजाय केवल आईपीवी 4 पर सुन रहा है । के अनुसार यह गिट थ्रेड, डॉकर के लिए यह सामान्य है कि यह केवल आईपीवी 6 पर सुन रहा है, लेकिन चलने के बाद telnet localhost
, netstat -ntlp
, और iptables -t nat -nxvL
, मुझे अभी भी कोई संकेत नहीं दिखता है कि 127.0.0.1:6000 पर कुछ भी सुन रहा है, जो कि पोर्ट है जिसे मेरी रजिस्ट्री (जो सिर्फ एक कंटेनर के रूप में चल रही है) को सौंपा जाना चाहिए । इसके बजाय, यह :::1:6000 पर सुन रहा है।
इसके अलावा, क्योंकि यह अनुरोध किया गया था और क्योंकि मुझे इसकी परवाह किए बिना इसे सूचीबद्ध करना चाहिए था:
user@devstack01:~$ sudo docker versionClient: Version: 1.10.3 API version: 1.22 Go version: go1.5.3 Git commit: 20f81dd Built: Thu Mar 10 15:54:52 2016 OS/Arch: linux/amd64Server: Version: 1.10.3 API version: 1.22 Go version: go1.5.3 Git commit: 20f81dd Built: Thu Mar 10 15:54:52 2016 OS/Arch: linux/amd64
UPDATE5
रजिस्ट्री कंटेनर के लॉग:
time="2016-04-04T18:34:22Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-04T18:34:22Z" level=info msg="redis not configured" go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-04T18:34:22Z" level=info msg="Starting upload purge in 58m0s" go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-04T18:34:22Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-04T18:34:22Z" level=info msg="listening on [::]:5000" go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-04T19:32:22Z" level=info msg="PurgeUploads starting: olderThan=2016-03-28 19:32:22.890256531 +0000 UTC, actuallyDelete=true"time="2016-04-04T19:32:22Z" level=info msg="Purge uploads finished. Num deleted=0, num errors=1"time="2016-04-04T19:32:22Z" level=info msg="Starting upload purge in 24h0m0s" go.version=go1.5.3 instance.id=25b8dd5a-f154-455b-84ad-3dd61ccf04e0 version=v2.3.1time="2016-04-05T13:54:59Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1time="2016-04-05T13:54:59Z" level=info msg="redis not configured" go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1time="2016-04-05T13:54:59Z" level=info msg="Starting upload purge in 59m0s" go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1time="2016-04-05T13:54:59Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1time="2016-04-05T13:54:59Z" level=info msg="listening on [::]:5000" go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1time="2016-04-05T14:53:59Z" level=info msg="PurgeUploads starting: olderThan=2016-03-29 14:53:59.133142744 +0000 UTC, actuallyDelete=true"time="2016-04-05T14:53:59Z" level=info msg="Purge uploads finished. Num deleted=0, num errors=1"time="2016-04-05T14:53:59Z" level=info msg="Starting upload purge in 24h0m0s" go.version=go1.5.3 instance.id=90882341-a150-4384-9434-b091aacdd68b version=v2.3.1
जब मैं अपनी रजिस्ट्री में एक छवि को पुश करने का प्रयास करता हूं तो डॉकर डेमॉन का डीबग लॉग:
DEBU[0037] Calling POST /v1.22/images/localhost:6000/hello-world/pushDEBU[0037] POST /v1.22/images/localhost:6000/hello-world/push?tag=DEBU[0037] Trying to push localhost:6000/hello-world to https://localhost:6000 v2DEBU[0037] Error getting v2 registry: Get https://localhost:6000/v2/: read tcp [::1]:33560->[::1]:6000: read: connection reset by peerDEBU[0037] Trying to push localhost:6000/hello-world to http://localhost:6000 v2DEBU[0037] Error getting v2 registry: Get http://localhost:6000/v2/: read tcp [::1]:33562->[::1]:6000: read: connection reset by peerDEBU[0037] Trying to push localhost:6000/hello-world to https://localhost:6000 v1DEBU[0037] attempting v2 ping for registry endpoint https://localhost:6000/v2/DEBU[0037] attempting v1 ping for registry endpoint https://localhost:6000/v1/DEBU[0037] Trying to push localhost:6000/hello-world to http://localhost:6000 v1DEBU[0037] Image list: [0xc820aa3840 0xc820704500]DEBU[0037] Tags by image: map[sha256:690ed74de00f99a7d00a98a5ad855ac4febd66412be132438f9b8dbd300a937d:[latest]]DEBU[0037] Pushing ID: b652ec3a27e758f30de4742156b5d096bb19c82f2dc836e96e430323ba166ffe with Tag:DEBU[0037] Pushing ID: 690ed74de00f99a7d00a98a5ad855ac4febd66412be132438f9b8dbd300a937d with Tag: latestDEBU[0037] [registry] PUT http://localhost:6000/v1/repositories/hello-world/DEBU[0037] Image list pushed to index:[{"id":"b652ec3a27e758f30de4742156b5d096bb19c82f2dc836e96e430323ba166ffe"},{"id":"690ed74de00f99a7d00a98a5ad855ac4febd66412be132438f9b8dbd300a937d","Tag":"latest"}]DEBU[0037] Not continuing with error: Put http://localhost:6000/v1/repositories/hello-world/: EOF
रजिस्ट्री लॉग यह कहने के साथ समाप्त होता है कि एक त्रुटि हुई, लेकिन बाकी लॉग से मैं वास्तव में यह नहीं समझ सकता कि वह त्रुटि क्या थी । मैंने लॉग को स्टडआउट और स्टडर में भी विभाजित किया और स्टडर में कुछ भी नहीं था ।
इसके अलावा, मैंने पुष्टि की है कि रजिस्ट्री आईपीवी 4 पर सुन रही है । चल रहा है nc -l -4 6000
रिटर्न Address already in use
. कम से कम, मुझे लगता है कि मैंने इसकी पुष्टि की है । आईपीवी 4 पते अभी भी साथ दिखाई नहीं देंगे netstat
.
UPDATE6
स्पष्ट रूप से एक आईपीवी 4 पोर्ट निर्दिष्ट किया गया है docker run -d -p 127.0.0.1:8000:8000
, यह पोर्ट नेटस्टैट में सुनने के रूप में दिखाई देता है । अभी भी वही त्रुटियां मिल रही हैं । डॉकर लॉग हालांकि थोड़ा अलग हैं:
time="2016-04-07T15:19:31Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1time="2016-04-07T15:19:31Z" level=info msg="redis not configured" go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1time="2016-04-07T15:19:31Z" level=info msg="Starting upload purge in 1m0s" go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1time="2016-04-07T15:19:31Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1time="2016-04-07T15:19:31Z" level=info msg="listening on [::]:5000" go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1time="2016-04-07T15:20:31Z" level=info msg="PurgeUploads starting: olderThan=2016-03-31 15:20:31.061864096 +0000 UTC, actuallyDelete=true"time="2016-04-07T15:20:31Z" level=info msg="Purge uploads finished. Num deleted=0, num errors=1"time="2016-04-07T15:20:31Z" level=info msg="Starting upload purge in 24h0m0s" go.version=go1.5.3 instance.id=6391e3dc-6644-4a45-8e8b-a08c8ff798a6 version=v2.3.1
"रेडिस कॉन्फ़िगर नहीं किया गया" संदेश एकमात्र ऐसी चीज है जो ऐसा लगता है कि यह एक समस्या हो सकती है । इसे देखने जा रहे हैं । वास्तव में, वास्तव में किसी भी अतिरिक्त अंतर्दृष्टि की सराहना करेंगे ।