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.
Lo scopo dei passaggi descritti qui è guidarti nella creazione della tua prima immagine Docker e nel suo invio ad Amazon ECR, che è un registro del container, per utilizzarla nelle definizioni delle attività Amazon ECS. Questa procedura guidata presuppone una conoscenza di base di Docker e del suo funzionamento. Per ulteriori informazioni su Docker, vedi Cos'è
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 le fasi di installazione di Docker per Amazon Linux 2, consulta la sezione Installazione 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 2 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 di processo di Amazon ECS utilizzano le immagini Docker per avviare i container 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
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 2 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 macOS 64"M1/Mx-chip, Use the --platform option "--platform linux/amd.
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/
. -
Se lo utilizzi docker-machine su un computer Windows o Mac, trova l'indirizzo IP della macchina VirtualBox virtuale che ospita Docker con il docker-machine ip comando, sostituendolo
machine-name
con il nome della macchina docker che stai utilizzando.docker-machine ip
machine-name
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 AWS Docker 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.goskope.comOutput:
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: