Esercizio - Eseguire il push di un'immagine di un microservizio in Docker Hub
Per creare un'immagine del contenitore, Kubernetes ha bisogno di una posizione da cui scaricarla. Docker Hub è una posizione centrale in cui caricare le immagini Docker. Molti prodotti, incluso Kubernetes, possono creare contenitori basati su immagini in Docker Hub.
Nota
Questo esercizio verrà completato in un codespace GitHub con Docker e .NET SDK preinstallato. Quando si usano queste tecniche nel proprio ambiente di sviluppo, verificare che questi prerequisiti siano installati.
Aprire l'ambiente di sviluppo
Si può scegliere di ospitare l'esercizio in un codespace GitHub oppure di completarlo in locale in Visual Studio Code.
Per usare un codespace, creare un codespace GitHub preconfigurato da questo collegamento.
Il processo di creazione e configurazione del codespace da parte di GitHub potrebbe durare qualche minuto. Al termine, il codice usato per il resto di questo modulo si trova nella directory /dotnet-kubernetes.
Per usare Visual Studio Code, clonare il repository https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative nel computer locale. Quindi:
- Installare eventuali requisiti di sistema per eseguire il contenitore di sviluppo in Visual Studio Code.
- Verificare che Docker sia in esecuzione.
- In una nuova finestra di Visual Studio Code, aprire la cartella del repository clonato
- Premere CTRL+MAIUSC+P per aprire il riquadro comandi.
- Ricerca: >Contenitori di sviluppo: Ricompilare e riaprire nel contenitore
- Selezionare eShopLite - dotnet-kubernetes nell'elenco a discesa. Visual Studio Code crea il contenitore di sviluppo in locale.
Verificare le immagini Docker creando contenitori nel codespace
Nel progetto Contoso Shop sono presenti due contenitori. Le immagini verranno usate per creare i contenitorinel codespace, prima di eseguirne il push in Docker Hub. Dopo la creazione e l'esecuzione dei contenitori, sarà possibile esplorare il sito Web dell'azienda Contoso e verificare che i microservizi siano correttamente in esecuzione.
Seguire questa procedura per creare ed eseguire contenitori Docker nel codespace.
Passare alla scheda TERMINALE ed eseguire il comando seguente per passare alla radice del codice:
cd dotnet-kubernetes
Eseguire il comando seguente per creare i contenitori:
dotnet publish /p:PublishProfile=DefaultContainer
La creazione dei contenitori può richiedere tempo.
Eseguire il comando seguente per eseguire l'app e collegare i contenitori:
docker compose up
Per testare il servizio, passare alla scheda PORTE e poi, a destra dell'indirizzo locale per la porta Front End, selezionare l'icona a forma di globo. Il browser visualizza la home page.
Seleziona i prodotti. Il catalogo mostra la merce di Contoso.
Chiudere il sito Web, tornare alla scheda TERMINALE e quindi premere CTRL + C. Docker
compose
interrompe i contenitori.
Accedere a Docker Hub
Il passaggio successivo per caricare le immagini in Docker Hub consiste nell'accedere a Docker Hub. Al prompt dei comandi, immettere il comando seguente:
docker login
Importante
Immettere lo stesso nome utente e la stessa password usati per creare l'account Docker. È possibile visitare il sito Web di Docker Hub per reimpostare la password, se necessario.
Caricare le immagini in Docker Hub
Immettere il codice seguente per assegnare un nuovo tag o rinominare le immagini Docker create con il nome utente Docker.
docker tag store [YOUR DOCKER USER NAME]/storeimage docker tag products [YOUR DOCKER USER NAME]/productservice
Infine caricare, ovvero eseguire il push delle immagini Docker in Docker Hub.
docker push [YOUR DOCKER USER NAME]/storeimage docker push [YOUR DOCKER USER NAME]/productservice
Se viene visualizzato un errore di autenticazione, è possibile eseguire
docker logout
seguito dadocker login
per ripetere l'autenticazione.
In questo esercizio sono stati usati Dockerfile e Docker Compose per creare due immagini e contenitori Docker ed è stato eseguito il push di tali immagini in Docker Hub.
A questo punto, è possibile usare Kubernetes per gestire la distribuzione dei microservizi di Contoso.