PUSH delle immagini mediante l'interfaccia CLI Docker

Scopri come eseguire il push delle immagini in Container Registry utilizzando l'interfaccia CLI Docker.

Puoi utilizzare l'interfaccia CLI Docker per eseguire il push delle immagini in Oracle Cloud Infrastructure Registry (noto anche come Container Registry).

Per eseguire il PUSH di un'immagine, è innanzitutto necessario utilizzare il comando docker tag per creare una copia dell'immagine di origine locale come nuova immagine (la nuova immagine è in realtà solo un riferimento all'immagine di origine esistente). Come nome della nuova immagine, è possibile specificare il percorso completamente qualificato della posizione di destinazione in Container Registry in cui si desidera eseguire il PUSH dell'immagine, incluso il nome di un repository.

Ad esempio, si supponga di disporre di un'immagine locale denominata acme-web-app:latest (il nome dell'immagine che comprende il nome del repository acme-web-app e la tag dell'immagine latest). Si supponga di voler eseguire il push di questa immagine in Container Registry in un repository denominato project01/acme-web-app con un identificativo di versione v2.0.test, nell'area Ashburn della tenancy acme-dev. Quando si utilizza il comando docker tag, si assegna un nome alla nuova immagine con il percorso completamente qualificato alla relativa destinazione, nel formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>. In questo caso, la nuova immagine verrà denominata ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test. Successivamente, quando si utilizza il comando docker push, il nome dell'immagine ne garantisce il push nella destinazione corretta.

Le autorizzazioni controllano le immagini di cui è possibile eseguire il push nel registro dei contenitori (vedere Criteri per controllare l'accesso al repository). È possibile eseguire il PUSH delle immagini nei repository creati (vedere Creazione di un repository). È inoltre possibile eseguire il PUSH delle immagini nei repository ai quali i gruppi a cui si appartiene hanno ottenuto l'accesso mediante criteri di identità appropriati. Se si appartiene al gruppo Amministratori, è possibile eseguire il PUSH delle immagini in qualsiasi repository della tenancy.

Le istruzioni riportate in questo argomento presuppongono che il repository in cui si desidera eseguire il push delle immagini esista già. In genere è così, ma non sempre è necessario farlo (vedere Creazione di un repository).

Nota

Container Registry è un registro conforme a Open Container Initiative. Di conseguenza, è possibile memorizzare tutti gli artifact conformi alle specifiche di Open Container Initiative, ad esempio immagini Docker, elenchi di manifesti (a volte noti come immagini multi-architettura) e grafici Helm. Le istruzioni riportate in questo argomento presuppongono la memorizzazione delle immagini Docker e l'utilizzo dell'interfaccia CLI Docker.

Per eseguire il PUSH delle immagini in Container Registry utilizzando l'interfaccia CLI Docker:

  1. Se si dispone già di un token di autenticazione, andare al passo successivo. Altrimenti:

    1. Nell'angolo superiore destro della console aprire il menu Profilo Icona menu Profilo, quindi selezionare Impostazioni utente (o Profilo personale o nome account) per visualizzare i dettagli.

    2. Nella pagina Token di autenticazione selezionare Genera token.

    3. Immettere una descrizione per il token di autenticazione. Evitare di inserire informazioni riservate.

    4. Selezionare Genera token. Viene visualizzato il nuovo token di autenticazione.

    5. Copiare immediatamente il token di autenticazione in una posizione sicura da cui è possibile recuperarlo in seguito, poiché il token di autenticazione non verrà più visualizzato nella console.

    6. Chiudere la finestra di dialogo Genera token.

  2. In una finestra terminale sul computer client su cui è in esecuzione Docker, eseguire il login a Container Registry immettendo docker login <registry-domain>, dove <registry-domain> include una chiave dell'area o un identificativo dell'area per l'area Container Registry in uso. Ad esempio, docker login ocir.us-ashburn-1.oci.oraclecloud.com. Vedere Disponibilità per area.

  3. Quando viene richiesto un nome utente, immettere il nome utente nel formato <tenancy-namespace>/<username>, dove <tenancy-namespace> è la stringa dello spazio di nomi dello storage degli oggetti generata automaticamente della tenancy (come mostrato nella pagina Informazioni sulla tenancy). Ad esempio, ansh81vru1zp/jdoe@acme.com.

    Se la tenancy è federata con Oracle Identity Cloud Service, utilizzare il formato <tenancy-namespace>/<domain-name>/<username>. Per gli utenti federati, <domain-name>/<username> viene visualizzato nel menu Profilo Icona menu Profilo nella console. Ad esempio, se la stringa dello spazio di nomi della tenancy è ansh81vru1zp e la tenancy è federata con Oracle Identity Cloud Service, il nome utente è jdoe@acme.com, quindi immettere ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com

  4. Quando viene richiesta una password, immettere il token di autenticazione copiato in precedenza.

  5. Trovare l'immagine sul computer client su cui si desidera eseguire il push:

    1. In una finestra del terminale sul computer client, immettere docker images per elencare le immagini disponibili.

      Ad esempio:

          
      $ docker images
      REPOSITORY        TAG              IMAGE ID      CREATED       SIZE
      acme-web-app      latest           8e0506e14874  2 hours ago   162.6 MB
      acme-web-app      v1.0             7d9495d03763  2 hours ago   162.6 MB
      <none>            <none>           6ebd328f833d  5 hours ago   162.6 MB
      hello-world       latest           80b84820d442  5 weeks ago   890 B
      					
    2. Trovare l'immagine locale sul computer client da inviare a Container Registry.

      Nell'output del comando docker images, cercare l'immagine specifica da sottoporre a push. Dovrai identificare questa immagine in modo univoco in un secondo momento, in uno dei seguenti modi:

      • Utilizzando il suo ID.

      • Utilizzando il nome dell'immagine (il nome del repository e la tag immagine separati da due punti).

      Ad esempio, sul computer client si potrebbe avere un'immagine acme-web-app. Nell'output del comando docker images, cercare l'immagine acme-web-app specifica che si desidera sottoporre a push. È possibile identificare in modo univoco tale immagine in uno dei seguenti modi:

      • Utilizzando il relativo ID (ad esempio, 8e0506e14874).

      • Utilizzando il nome dell'immagine (il nome del repository e la tag immagine separati da due punti, ad esempio acme-web-app:latest).

    3. Utilizzare il comando docker tag per creare una copia dell'immagine originale come nuova immagine (la nuova immagine è in realtà solo un riferimento all'immagine originale esistente). Come nome (o tag) per la nuova immagine, è possibile specificare il percorso completamente qualificato della posizione di destinazione in Container Registry in cui si desidera eseguire il PUSH dell'immagine immettendo:

      docker tag <image-identifier> <target-tag>

      Dove:

      • <image-identifier> identifica in modo univoco l'immagine originale, utilizzando l'ID dell'immagine (ad esempio, 8e0506e14874) o il nome dell'immagine (il nome del repository originale e la tag immagine separati da due punti, ad esempio acme-web-app:latest).

      • <target-tag> è il percorso completamente qualificato della posizione di destinazione in Container Registry in cui si desidera eseguire il PUSH dell'immagine, nel formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>, dove:

        • <registry-domain> include la chiave dell'area o l'identificativo dell'area per l'area Container Registry in uso. Ad esempio, ocir.us-ashburn-1.oci.oraclecloud.com. Vedere dominio di registro.

        • <tenancy-namespace> è la stringa dello spazio di nomi dello storage degli oggetti generata automaticamente della tenancy proprietaria del repository su cui si desidera eseguire il PUSH dell'immagine (come mostrato nella pagina Informazioni sulla tenancy). Ad esempio, lo spazio di nomi della tenancy acme-dev potrebbe essere ansh81vru1zp. Tenere presente che per alcune tenancy meno recenti, la stringa dello spazio di nomi potrebbe essere uguale al nome della tenancy in tutte le lettere minuscole (ad esempio, acme-dev). Tenere inoltre presente che l'utente deve avere accesso alla tenancy.

        • <repo-name> è il nome del repository di destinazione in cui si desidera eseguire il PUSH dell'immagine (ad esempio, project01/acme-web-app). Si noti che in genere viene specificato un repository già esistente, ma che non è sempre necessario verificare (vedere Creazione di un repository).

        • <version> è un identificativo di versione che si desidera assegnare all'immagine in Container Registry (ad esempio, v2.0.test).

      Ad esempio, combinando gli esempi precedenti, è possibile immettere:

      docker tag 8e0506e14874 ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
  6. Verificare che l'immagine Docker sia stata contrassegnata correttamente sul computer client immettendo docker images e verificando che l'elenco di immagini includa un'immagine con il tag specificato.

    Ad esempio:

    
    $ docker images
    REPOSITORY                                                                TAG                   IMAGE ID      CREATED       SIZE
    ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app v2.0.test             8e0506e14874  1 minute ago  162.6 MB
    acme-web-app                                                              latest                8e0506e14874  2 hours ago   162.6 MB
    acme-web-app                                                              v1.0                  7d9495d03763  2 hours ago   162.6 MB
    <none>                                                                    <none>                6ebd328f833d  5 hours ago   162.6 MB
    hello-world                                                               latest                80b84820d442  5 weeks ago   890 B
    					
  7. Eseguire il push dell'immagine Docker dal computer client al registro dei contenitori immettendo:

    docker push <target-tag>

    dove <target-tag> è nel formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version> dove:

    • <registry-domain> include la chiave dell'area o l'identificativo dell'area per l'area Container Registry in uso. Ad esempio, ocir.us-ashburn-1.oci.oraclecloud.com. Vedere dominio di registro.

    • <tenancy-namespace> è la stringa dello spazio di nomi dello storage degli oggetti generata automaticamente della tenancy proprietaria del repository su cui si desidera eseguire il PUSH dell'immagine (come mostrato nella pagina Informazioni sulla tenancy). Ad esempio, lo spazio di nomi della tenancy acme-dev potrebbe essere ansh81vru1zp. Tenere presente che per alcune tenancy meno recenti, la stringa dello spazio di nomi potrebbe essere uguale al nome della tenancy in tutte le lettere minuscole (ad esempio, acme-dev). Tenere inoltre presente che l'utente deve avere accesso alla tenancy.

    • <repo-name> è il nome del repository di destinazione in cui si desidera eseguire il PUSH dell'immagine (ad esempio, project01/acme-web-app). Si noti che in genere viene specificato un repository già esistente, ma che non è sempre necessario verificare (vedere Creazione di un repository).

    • <version> è l'identificativo della versione che si desidera assegnare all'immagine in Container Registry (ad esempio, v2.0.test).

    Ad esempio:

    docker push ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test