2014-12-12 6 views
5

Ho bisogno di cambiare l'account Docker Hub su cui sto spingendo le mie immagini. Ho usato docker login di aggiornare il mio file .dockercfg poi corse il seguente (account, image, e tag agendo segnaposto come generico per i miei valori reali):Spingendo l'immagine della finestra mobile sul nuovo account del mozzo della docker non riesce

docker push account/image:tag

immediatamente ottengo il seguente errore:

The push refers to a repository [account/image] (len: 1) 
Sending image list 
2014/12/11 21:26:59 Error: Status 400 trying to push repository repo/image: 
"Access denied: <hash> is a private image" docker push account/image:tag 
returned exit code 1action docker push repo/image:tag failed 

Sto tentando di eseguire il push su un repository privato sull'hub docker ma ho ricontrollato che il mio auth corrisponda. Perché questo non funziona e come lo risolvo?

risposta

0

Non riesco ancora a capire perché è successo, ma ho capito come risolverlo. Ho distrutto tutte le immagini e i contenitori sul mio computer locale e ho ricostruito l'immagine. Dopo averlo fatto, sono stato in grado di inviare il nuovo account.

La mia teoria è che l'immagine di Docker che ho creato originariamente dipendeva da strati che erano esistiti nelle versioni precedenti e che il vecchio account era disponibile. Una volta passato al nuovo account stavo cercando di spingere un'immagine che dipendeva da livelli che non esistevano più nell'Hub Docker, con il risultato che il livello non veniva trovato, il che ha indotto Docker Hub a pensare che la cosa a cui stavo cercando di accedere fosse privata , quando in realtà non esisteva.

Tutto quanto sopra è praticamente una pura congettura, quindi sarei lieto di essere illuminato da qualcuno con maggiore conoscenza e/o esperienza in questo settore.

0

Ho riscontrato lo stesso problema e il motivo si è rivelato essere un'immagine madre privata. Come spiegato here, l'immagine viene creata sopra un'immagine di base e nella maggior parte dei casi le immagini dei genitori. Quando provi a trasferire le ultime modifiche nell'hub docker, l'account dovrebbe avere accesso a tutte le immagini principali, altrimenti si verificherà questo errore. Nel mio caso l'utente con cui ho provato a spingere non ha accesso all'immagine che ho usato come base.

È possibile identificare facilmente l'immagine privata tramite il suo hash.

docker images -a | grep <hash> 

Se si ha accesso al repository privato è possibile risolvere il problema aggiungendo l'utente che si stanno spingendo con l'elenco dei collaboratori. Se non lo fai, dovrai taggare il repository privato per il tuo utente e applicare il resto delle modifiche manualmente.

Spero che questo aiuti;)

0

ho appena vissuto lo stesso problema qui. Nel mio caso, ho avuto nel mio Dockerfile l'istruzione "DA ubuntu: latest". In questo caso, avevo costruito l'immagine usando il mio vecchio account e per questo avevo scaricato l'ubuntu: l'ultima per crearlo, ma questo download è stato fatto usando il mio account precedente, quindi ho appena rimosso l'ubuntu: l'ultima (che era l'immagine di base utilizzata) dal mio computer e ha ricostruito la mia immagine. Dopo questo, sono stato in grado di spingere la mia immagine.

0

Mi sono imbattuto in questo problema, e il commento di Bruno sembrava risolvere il problema. Ecco un rapido commento di bash per la rimozione delle immagini (supponendo che siano disponibili DockerFiles e automazione per ricrearle): immagini di finestra mobile | awk '{print $ 3}' | xargs docker rmi -f

0

Stavo usando l'ultima Docker, costruita da ubuntu: fidata quando è successo. L'eliminazione di tutte le immagini non ha aiutato.Ho cambiato il tag immagine genitore da fidato a vecchio fidato-20150630.