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 impacchettate come immagini di container. Questo esempio crea un'immagine del contenitore per un server Web.
Puoi creare la tua prima immagine Docker e poi inviarla ad Amazon ECR, che è un registro di container, da utilizzare 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 Cos'è 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 Spostare un'immagine attraverso il suo ciclo di vita in Amazon ECR nella Amazon Elastic Container Registry User Guide.
-
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 i passaggi di installazione di Docker per Amazon Linux 2023, consultaInstallazione di Docker su 023 AL2. Per tutti gli altri sistemi operativi, consulta la documentazione su Docker all'indirizzo Panoramica di Docker Desktop
. -
Hai AWS CLI installato e configurato il. Per ulteriori informazioni, vedere Installazione o aggiornamento alla versione più recente di AWS CLI nella Guida per l'AWS Command Line Interface utente.
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-user
al gruppodocker
in 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 gruppodocker
appropriate. -
Verifica che
ec2-user
possa eseguire i comandi Docker senzasudo
.docker info
Nota
In alcuni casi, l'assegnazione delle autorizzazioni necessarie a
ec2-user
per 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 immagini di container per lanciare container sulle istanze di container presenti nei 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
Dockerfile
appena 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.sh
Questo Dockerfile utilizza l'immagine pubblica di Amazon Linux 2023 ospitata su Amazon ECR Public. Le istruzioni
RUN
aggiornano 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'EXPOSE
istruzione indica che la porta 80 sul contenitore è quella in ascolto e l'CMD
istruzione avvia 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
, usa l'opzione --platform «--platform linux/amd64". docker build -t hello-world .
-
Elenca l'immagine del container.
docker images --filter reference=hello-world
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 194MB
-
Esegui l'immagine appena creata. L'opzione
-p 80:80
mappa la porta 80 esposta sul container alla porta 80 sul sistema host.docker run -t -i -p 80:80 hello-world
Nota
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 stai usando 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 valorerepositoryUri
nell'output.region
Sostituiscilo, ad esempio Regione AWS, con il tuo.us-east-1
aws ecr create-repository --repository-name
hello-repository
--regionregion
Output:
{ "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-world
con il valorerepositoryUri
ricavato nella fase precedente.docker tag hello-world
aws_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 --region
region
| 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, vedere Installazione o aggiornamento alla versione più recente di AWS CLI nella Guida per l'AWS Command Line Interface utente.
-
Invia l'immagine ad Amazon ECR con il valore
repositoryUri
dalla fase precedente.docker push
aws_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 Passaggi successivi. 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-name
hello-repository
--regionregion
--force
Passaggi successivi
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 contenitore ad Amazon ECR, puoi utilizzare quell'immagine in una definizione di attività. Per ulteriori informazioni, consultare uno dei seguenti argomenti: