Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di un'immagine di container da utilizzare su Amazon ECS
Amazon ECS utilizza le immagini Docker nelle definizioni di attività per avviare i container. Docker è una tecnologia che fornisce gli strumenti per costruire, eseguire, testare e implementare applicazioni distribuite basate su container.
Amazon ECS pianifica le applicazioni containerizzate su istanze di container o su Fargate. AWS Le applicazioni containerizzate sono pacchettizzate come immagini del container. Questo esempio crea un'immagine del container per un server web.
Puoi creare la tua prima immagine Docker, quindi inviarla ad Amazon ECR, che è un registro del container, per utilizzarla nelle definizioni delle attività di Amazon ECS. Questa procedura guidata presuppone una conoscenza di base di Docker e del suo funzionamento. Per ulteriori informazioni su Docker, consulta What is Docker?
Prerequisiti
Prima di iniziare, verifica che siano soddisfatti i seguenti requisiti preliminari:
-
Assicurati di aver completato le fasi di configurazione di Amazon ECR. Per ulteriori informazioni, consulta Moving an image through its lifecycle in Amazon ECR nella Guida per l'utente di Amazon Elastic Container Registry.
-
L'utente dispone delle autorizzazioni IAM richieste per accedere al servizio Amazon ECR. Per ulteriori informazioni, consulta Policy gestite da Amazon ECR.
-
Docker è installato. Per le fasi di installazione di Docker per Amazon Linux 2023, consulta Installazione di Docker su 023 AL2. Per tutti gli altri sistemi operativi, consulta la documentazione su Docker all'indirizzo Panoramica di Docker Desktop
. -
Hai installato e configurato. AWS CLI Per ulteriori informazioni, consulta Installing or updating to the latest version of the AWS CLI nella Guida per l'utente dell'AWS Command Line Interface .
Se non disponi o non hai bisogno di un ambiente di sviluppo locale e preferisci utilizzare un' EC2 istanza Amazon per usare Docker, forniamo i seguenti passaggi per avviare un' EC2 istanza Amazon utilizzando Amazon Linux 2023 e installare Docker Engine e Docker CLI.
Docker è disponibile per diversi sistemi operativi, compresa la maggior parte delle distribuzioni Linux, ad esempio Ubuntu, e persino per macOS e Windows. Per ulteriori informazioni sull'installazione di Docker sul tuo specifico sistema operativo, consulta la guida all'installazione di Docker
Per l'utilizzo di Docker non è necessario un sistema di sviluppo locale. Se utilizzi EC2 già Amazon, puoi avviare un'istanza Amazon Linux 2023 e installare Docker per iniziare.
Se hai già installato Docker, passa a Creazione di un'immagine Docker.
Per installare Docker su un' EC2 istanza Amazon utilizzando un'AMI Amazon Linux 2023
-
Avvia un'istanza con l'ultima AMI Amazon Linux 2023. Per ulteriori informazioni, consulta Avviare un' EC2 istanza utilizzando la procedura guidata di avvio dell'istanza nella console nella Amazon EC2 User Guide.
-
Connettiti alla tua istanza. Per ulteriori informazioni, consulta Connect to your EC2 istance nella Amazon EC2 User Guide.
-
Aggiorna i pacchetti installati e la cache dei pacchetti sulla tua istanza.
sudo yum update -y -
Installa il pacchetto Docker Community Edition più recente.
sudo yum install docker -
Avvia il servizio Docker.
sudo service docker start -
Aggiungi
ec2-useral gruppodockerin modo da poter eseguire comandi Docker senza utilizzaresudo.sudo usermod -a -G docker ec2-user -
Esci e ripeti l'accesso per trovare il nuovo gruppo di autorizzazioni
docker. A questo scopo, puoi chiudere la finestra del terminale SSH corrente e riconnetterti all'istanza in una nuova finestra. La nuova sessione SSH avrà le autorizzazioni del gruppodockerappropriate. -
Verifica che
ec2-userpossa eseguire i comandi Docker senzasudo.docker infoNota
In alcuni casi, l'assegnazione delle autorizzazioni necessarie a
ec2-userper accedere al daemon Docker può richiedere il riavvio dell'istanza. Prova a riavviare l'istanza se visualizzi questo errore:Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Creazione di un'immagine Docker
Le definizioni delle attività di Amazon ECS utilizzano le immagini dei container per avviare questi ultimi sulle istanze di container nei tuoi cluster. In questa sezione, crei un'immagine Docker di una semplice applicazione Web e la testi sul tuo sistema locale o su un' EC2 istanza Amazon, quindi invii l'immagine al registro dei contenitori Amazon ECR in modo da poterla utilizzare in una definizione di attività Amazon ECS.
Per creare un'immagine Docker di una semplice applicazione Web
-
Crea un file denominato
Dockerfile. Un Dockerfile è un file manifest che descrive l'immagine di base da utilizzare per l'immagine Docker, nonché gli elementi da installare ed eseguire su di essa. Per ulteriori informazioni sui Dockerfile, consulta la documentazione di riferimento sui Dockerfile. touch Dockerfile -
Modifica il
Dockerfileappena creato e aggiungi i seguenti contenuti.FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Update installed packages and install Apache RUN yum update -y && \ yum install -y httpd # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure Apache RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \ echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.shQuesto Dockerfile utilizza l'immagine pubblica di Amazon Linux 2023 ospitata su Amazon ECR Public. Le istruzioni
RUNaggiornano le cache dei pacchetti, installano alcuni pacchetti software per il server Web e infine scrivono il contenuto "Hello World!" nella root del documento del server Web. L'istruzioneEXPOSEindica che la porta 80 nel container è in ascolto, mentre l'istruzioneCMDavvia il server web. -
Crea l'immagine Docker dal tuo Dockerfile.
Nota
In alcune versioni di Docker, il seguente comando potrebbe richiedere il percorso completo al Dockerfile anziché il percorso relativo mostrato di seguito.
Se esegui il comando su un sistema basato su ARM, come Apple Silicon
, utilizza l'opzione --platform “--platform linux/amd64”. docker build -t hello-world . -
Elenca l'immagine del container.
docker images --filter reference=hello-worldOutput:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 194MB
-
Esegui l'immagine appena creata. L'opzione
-p 80:80mappa la porta 80 esposta sul container alla porta 80 sul sistema host.docker run -t -i -p 80:80 hello-worldNota
L'output dal server Web Apache viene visualizzato nella finestra del terminale. Puoi ignorare il messaggio "
Could not reliably determine the fully qualified domain name". -
Apri un browser e accedi al server su cui è in esecuzione Docker e che ospita il tuo container.
-
Se utilizzi un' EC2 istanza, questo è il valore DNS pubblico per il server, che è lo stesso indirizzo che usi per connetterti all'istanza con SSH. Assicurati che il gruppo di sicurezza per l'istanza consenta il traffico in entrata sulla porta 80.
-
Se Docker è in esecuzione in locale, accedi con il browser a http://localhost/
.
Visualizzerai una pagina Web con il tuo contenuto "Hello World!" dichiarazione.
-
-
Interrompi il container Docker digitando Ctrl+c.
Invia l'immagine al registro del container di Amazon Elastic
Amazon ECR è un servizio di registro di immagini AWS gestito. Puoi utilizzare la CLI di Docker per inviare, estrarre e gestire le immagini nei tuoi repository Amazon ECR. Per i dettagli sui prodotti Amazon ECR, i case study dei clienti in evidenza e FAQs, consulta le pagine dei dettagli del prodotto Amazon Elastic Container Registry
Come aggiungere un tag all'immagine e inviarla ad Amazon ECR
-
Crea un repository Amazon ECR per archiviare l'immagine
hello-world. Annota il valorerepositoryUrinell'output.regionSostituiscilo, ad esempio Regione AWS, con il tuo.us-east-1aws ecr create-repository --repository-namehello-repository--regionregionOutput:
{ "repository": { "registryId": "
aws_account_id", "repositoryName": "hello-repository", "repositoryArn": "arn:aws:ecr:region:aws_account_id:repository/hello-repository", "createdAt": 1505337806.0, "repositoryUri": "aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository" } } -
Applica un tag all'immagine
hello-worldcon il valorerepositoryUriricavato nella fase precedente.docker tag hello-worldaws_account_id.dkr.ecr.region.amazonaws.com/hello-repository -
Esegui il comando aws ecr get-login-password. Specificare l'URI del registro in cui si desidera eseguire l'autenticazione. Per maggiori informazioni, consulta Autorizzazioni del registro nella Guida per l'utente di Amazon Elastic Container Registry.
aws ecr get-login-password --regionregion| docker login --username AWS --password-stdinaws_account_id.dkr.ecr.region.amazonaws.com.rproxy.govskope.caOutput:
Login Succeeded
Importante
Se viene visualizzato un errore, installare o eseguire l'upgrade alla versione più recente dell' AWS CLI. Per ulteriori informazioni, consulta Installing or updating to the latest version of the AWS CLI nella Guida per l'utente dell'AWS Command Line Interface .
-
Invia l'immagine ad Amazon ECR con il valore
repositoryUridalla fase precedente.docker pushaws_account_id.dkr.ecr.region.amazonaws.com/hello-repository
Eliminazione
Per continuare con la creazione di una definizione di attività di Amazon ECS e l'avvio di un'attività con l'immagine del container, vai al passaggio Fasi successive. Una volta completato l'esperimento con l'immagine Amazon ECR, puoi eliminare il repository in modo che non ti siano addebitati costi per l'archiviazione dell'immagine.
aws ecr delete-repository --repository-namehello-repository--regionregion--force
Fasi successive
Le definizioni di attività richiedono un ruolo per l'esecuzione dell'attività. Per ulteriori informazioni, consulta Ruolo IAM di esecuzione di attività Amazon ECS.
Dopo aver creato e inviato l'immagine del container ad Amazon ECR, puoi utilizzare l'immagine in una definizione delle attività. Per ulteriori informazioni, consultare uno dei seguenti argomenti: