2015-04-15 27 views
5

Sto tentando di impostare un registro di docker locale, ma si verificano problemi durante il tentativo di inviare immagini. Ho aperto un problema di github troppo: https://github.com/docker/docker/issues/12405Registro di sistema locale Docker: push non riuscito

AMBIENTE

OS: CentOS 6.6

Kernel: Versione 2.6.32-504.12.2.el6.x86_64

Docker:

$ sudo docker version 
Client version: 1.5.0 
Client API version: 1.17 
Go version (client): go1.4.1 

Sono dietro un proxy aziendale (http://domain \ nomeutente: password @ proxy: porta).

PROBLEMA

Sto lanciando il demone Docker con questo comando:

sudo docker -d --insecure-registry 127.0.0.1:49500& 

Ho scaricato il file config_sample.yml da github finestra mobile-registro, ribattezzata a registry_config.yml , e ha appena modificato il "percorso_scatolamento" nell'aroma locale (per indicare una directory scelta in cui voglio montare un volume):

local: &local 
<<: *common 
storage: local 
storage_path: /image 

Per avviare il Registro di sistema (versione 0.9.1), apro un'altra scheda nel mio terminale e uso questo comando:

sudo docker run -t -i -p 127.0.0.1:49500:5000 -v $HOME/localRegistry/image:/image -e DOCKER_REGISTRY_CONFIG=$HOME/localRegistry/registry_config.yml --name registry registry /bin/bash 

Ritornare alla scheda terminale prima, allora provo a spingere un'immagine casuale in registro locale, ed è qui che ricevo alcuni errori:

$sudo docker push 127.0.0.1:49500/centos:7 
INFO[1215] POST /v1.17/images/127.0.0.1:49500/centos/push?tag=7 
INFO[1215] +job push(127.0.0.1:49500/centos) 
INFO[1215] +job resolve_repository(127.0.0.1:49500/centos) 
INFO[1215] -job resolve_repository(127.0.0.1:49500/centos) = OK (0) 
invalid registry endpoint "http://127.0.0.1:49500/v0/". HTTPS attempt: unable to ping registry endpoint https://127.0.0.1:49500/v0/ 
v2 ping attempt failed with error: Get https://127.0.0.1:49500/v2/: read tcp 127.0.0.1:49500: connection reset by peer 
v1 ping attempt failed with error: Get https://127.0.0.1:49500/v1/_ping: read tcp 127.0.0.1:49500: connection reset by peer. HTTP attempt: unable to ping registry endpoint http://127.0.0.1:49500/v0/ 
v2 ping attempt failed with error: Get http://127.0.0.1:49500/v2/: read tcp 127.0.0.1:49500: connection reset by peer 
v1 ping attempt failed with error: Get http://127.0.0.1:49500/v1/_ping: read tcp 127.0.0.1:49500: connection reset by peer 
INFO[1215] -job push(127.0.0.1:49500/centos) = ERR (1) 
ERRO[1215] Handler for POST /images/{name:.*}/push returned error: v1 ping attempt failed with error: Get http://127.0.0.1:49500/v1/_ping: read tcp 127.0.0.1:49500: connection reset by peer 
ERRO[1215] HTTP Error: statusCode=500 v1 ping attempt failed with error: Get http://127.0.0.1:49500/v1/_ping: read tcp 127.0.0.1:49500: connection reset by peer 
FATA[0000] Error: v1 ping attempt failed with error: Get http://127.0.0.1:49500/v1/_ping: read tcp 127.0.0.1:49500: connection reset by peer 

Chiedimi se desideri dei dettagli più specifici. Grazie per l'attenzione :)

UPDATE

non avevo notato, ma da quando ho aggiornato da Docker 1.4.1 a 1.5.0 di ieri, sembra che finestra mobile non è stato in grado di raggiungere il hub attraverso il proxy (la ricerca della finestra mobile sudo non funzionava). Ho risolto questo problema esportando le variabili di ambiente HTTP_PROXY e HTTPS_PROXY e avviando il daemon con sudo -E.

Quindi, come ha fatto notare SGer, non stavo lanciando il mio file di configurazione nel contenitore del registro. Pertanto, il registro non ha potuto accedere alla configurazione. L'ho modificato spostando il file di configurazione nella propria directory e montando tale directory come volume quando si esegue il contenitore del registro. Il nuovo comando in esecuzione:

sudo docker run -t -i -p 127.0.0.1:49500:5000 -v $HOME/localRegistry/image:/image -v $HOME/localRegistry/configDir:/configDir -e DOCKER_REGISTRY_CONFIG=configDir/config.yml --name registry registry /bin/bash 

Dopo quei 2 modifiche, ho provato di nuovo, in esecuzione finestra mobile daemon con l'opzione -D questa volta.Ecco l'output (diviso in 3 parti):

https://gist.github.com/ekeryelleven/9714312c45b7ff21ce2a

ho lanciato il contenitore registro (da un'altra scheda terminale): https://gist.github.com/ekeryelleven/b9bfa50bfe3221798659

Poi, ho spinto: https://gist.github.com/ekeryelleven/80f8f1d1dad00b0fbea9

UPDATE 2

Qualcuno mi ha detto che era possibilmente collegato a https://github.com/docker/docker/issues/9315

ho cercato di riprodurre:

$ wget -O- --post-data='' 'http://127.0.0.1:49500/images' 
--2015-04-16 11:01:42-- http://127.0.0.1:49500/images 
Resolving <proxy>... <ip> 
Connecting to <proxy>|<ip>|:<port>... connected. 
Proxy request sent, awaiting response... 504 Gateway Timeout 
2015-04-16 11:01:42 ERROR 504: Gateway Timeout. 

Così ho pensato che forse il proxy è stato in disordine le cose quando sto cercando di raggiungere registro locale, così mi sono imbattuto di nuovo la mia prima prova senza impostare alcuna configurazione proxy per finestra mobile daemon (nessuna variabile HTTP_PROXY e HTTPS_PROXY, nessuna sudo -E). Uscita (3 parti):

http://pastebin.com/raw.php?i=XaJaSsWk

lancio del contenitore di registro: http://pastebin.com/raw.php?i=1tux468H

Pushing: http://pastebin.com/raw.php?i=LsvNfdQf

+1

Non ho ancora utilizzato alcun file di configurazione con il registro, ma sembra che tu abbia impostato il file configpath in un file che si trova sul tuo host, non nel tuo contenitore. Poiché si tratta di una variabile di ambiente, mi aspetto che tu possa solo impostarla su un file accessibile all'interno del contenitore, poiché non può accedere al file system host. – SGer

+0

Ho letto di nuovo la documentazione relativa al file di configurazione, e hai ragione, deve essere accessibile al container montandolo in un volume. Ma mi sono appena reso conto che ho un altro problema: da quando ho aggiornato Docker dalla 1.4.1 alla 1.5.0, non posso accedere all'hub docker tramite il mio proxy. Questa è probabilmente la causa del mio problema. –

+0

Ho aggiornato il personale, prendendo in considerazione la tua idea –

risposta

1
Non

davvero una risposta, ma ho aggiornato a finestra mobile 1.6 e del Registro di sistema 2.0 e il problema sparito .