2015-04-29 18 views
33

sto cercando di spingere la mia immagine finestra mobile fino nel Registro di sistema finestra mobile pubblica:Docker registro pubblico spinta fallisce: Repository non esiste

$ docker login 
Username (binarybana): 
WARNING: login credentials saved in /home/jknight/.dockercfg. 
Login Succeeded 

$ docker images 
REPOSITORY    TAG     IMAGE ID   CREATED    VIRTUAL SIZE 
binarybana/dev-fedora latest    10c7881fbaca  24 hours ago  1.148 GB 
binarybana/fedoradev latest    10c7881fbaca  24 hours ago  1.148 GB 
binarybana/fedora-dev latest    10c7881fbaca  24 hours ago  1.148 GB 
<none>     <none>    b44397dc4c99  24 hours ago  1.148 GB 
<none>     <none>    a98c27ba4738  24 hours ago  1.141 GB 
<none>     <none>    775c74a34add  24 hours ago  1.141 GB 
<none>     <none>    2be2491d2354  24 hours ago  1.141 GB 
docker.io/fedora  21     93be8052dfb8  7 days ago   241.3 MB 

$ docker push binarybana/dev-fedora 

Do you really want to push to public registry? [Y/n]: Y 
The push refers to a repository [docker.io/binarybana/dev-fedora] (len: 0) 
FATA[0001] Repository does not exist: docker.io/binarybana/dev-fedora 

$ docker push binarybana/fedora-dev 

Do you really want to push to public registry? [Y/n]: Y 
The push refers to a repository [docker.io/binarybana/fedora-dev] (len: 0) 
FATA[0002] Repository does not exist: docker.io/binarybana/fedora-dev 

Eppure, ho già creato il repository (visualizzabile here). E ho anche provato a inserire nomi di repository che non ho ancora creato (il primo tentativo nell'esempio sopra).

Penso che il (len: 0) abbia qualcosa a che fare con esso, ma non posso google. Inoltre ho originariamente creato l'immagine da un file di dati come:

docker build -t binarybana/fedora-dev . 

Grazie.

+0

funziona se si fornisce il registro ..../binarybana/dev-fedora – resultsway

+0

Ah sì, quello era un refuso, ma provare a dev-fedora dà lo stesso risultato (modificato la domanda di conseguenza). Buon occhio però! – JKnight

risposta

77

costruire sempre la vostra immagine con "nome utente" e "tag"

docker build -t <username>/dev-fedora:latest .

Dopo aver costruito spingere il immagine

docker push <username>/dev-fedora:latest

+1

questa era la risposta per me – derrend

+0

@derrend, sono felice che risolva il tuo problema :) – Mahattam

+1

Cheers! Errore di schifo. – spieden

4

È necessario utilizzare il nome completo dell'immagine. Se non si specifica il tag, mentre la costruzione, è latest, così si dovrebbe dire

docker push binarybana/fedora-dev:latest 
13

se si utilizza docker.io (dockerhub pronti contro termine), è necessario codificare esso i incluso il nome docker.io in esso.

docker tag ${image_id} docker.io/${login_name}/${image_name} 

e poi

docker push docker.io/${login_name}/${image_name} is OK 
+0

Oh mio Dio, così semplice eppure così dolorosa ricerca prima di trovare la tua risposta. Grazie! –

6

Ho anche incontrato questo errore Repository does not exist: gcr.io/my-project-id/my-container quando si tenta di spingere un'immagine per Google Container Registry.

La mia confusione deriva da un fraintendimento della definizione di "repository" di Docker.

Un repository è un set di immagini Docker. Un repository può essere condiviso spingendolo su un server di registro. Le diverse immagini nel repository possono essere etichettate usando i tag.

Quando Docker dice che un repository non esiste, vuol dire che non c'è nessuna immagine che si può trovare a livello locale che è tagged con quella registry.host/user-name/image-name combinazione.

Nota: il registro Docker Hub è il default, in modo che la parte possa essere omessa se si sta spingendo lì.

passaggi per risolvere questo problema:

  1. Doppio controllo quali immagini che avete a disposizione a livello locale.

    $ docker images 
    REPOSITORY    TAG  IMAGE ID  CREATED  VIRTUAL SIZE 
    gcr.io/my-proj/my-typo v1  40c2ae2dedb8 2 days ago 427.8 MB 
    
  2. Se c'è un errore di battitura, è possibile eseguire il comando docker tag per risolvere il problema.

    $ docker tag gcr.io/my-proj/my-typo:v1 gcr.io/my-proj/my-cntr:v1 
    
  3. Ora, si dovrebbe essere in grado di spingere l'immagine utilizzando il nome completo, compreso il tag.

    $ docker push gcr.io/my-proj/my-cntr:v1 
    

    Nota: L'utilizzo gcloud docker -- push invece di docker push se si sta spingendo per il contenitore del Registro di sistema di Google.

+2

Grazie per la tua spiegazione sulla definizione di un repository, molto utile per capire il vero problema che ho avuto. –

6

Se si utilizza Amazon AWS, prima di poter spingere le immagini Docker ad Amazon ECR, è necessario creare un repository per la memorizzazione in. È possibile creare repository Amazon ECR con la console AWS Management, o con l'AWS CLI e gli SDK AWS.

Per creare un repository

1.) Aprire la console di Amazon ECS al https://console.aws.amazon.com/ecs/.

2.) Dalla barra di navigazione, scegliere la regione per creare il repository in.

3.) Sulla pagina Repository, scegliere Crea repository.

4.) Per Nome repository, immettere un nome univoco per il repository e selezionare Passaggio successivo.

5.) Ora dovresti essere in grado di passare al tuo repository AWS!

Problemi correlati