Introduzione
Le immagini Docker all'interno di un contenitore in esecuzione non si aggiornano automaticamente. Dopo aver utilizzato un'immagine per creare un contenitore, questa continua a eseguire quella versione, anche dopo l'uscita di nuove versioni.
Si consiglia di eseguire i container dall'ultima immagine Docker, a meno che tu non abbia un motivo specifico per utilizzare una versione precedente.
In questo tutorial imparerai come aggiornare l'immagine Docker e il contenitore all'ultima versione.
Prerequisiti
- Accesso a una riga di comando/finestra del terminale
- Un account utente con sudo privilegi
- Un'installazione Docker esistente
- Un contenitore Docker esistente e un'immagine Docker
Aggiorna l'immagine Docker e il contenitore all'ultima versione
Il modo migliore per aggiornare un container esistente con l'immagine più recente consiste nel scaricare l'immagine più recente e avviare un nuovo container con la stessa configurazione. Segui i passaggi elencati di seguito per aggiornare il tuo contenitore con l'immagine Docker più recente.
Passaggio 1:verifica la versione corrente
Verifica di avere un'immagine obsoleta, elencando le immagini sul tuo sistema con il comando:
sudo docker images
L'output mostra le immagini scaricate e i relativi tag (numeri di versione). Nell'esempio seguente, il sistema mostra che sta utilizzando mysql versione dell'immagine 5.7.31 . Le immagini MySQL ufficiali di Docker elencate su DockerHub mostrano che l'ultima versione (al momento della scrittura) è 8.0.21 .
Pertanto, se hai un container in esecuzione su quell'immagine, è meglio aggiornarlo.
Fase 2:estrai l'ultima immagine
Scarica la versione più recente dell'immagine utilizzando il docker pull
comando:
sudo docker pull [docker_image]
Per impostazione predefinita, Docker estrae l'ultima versione. Per assicurarti che lo faccia, puoi aggiungere il :latest
tag.
Ad esempio, per estrarre l'ultima immagine MySQL, eseguire:
sudo docker pull mysql/mysql-server:latest
Fase 3:avvia un nuovo contenitore aggiornato
Dopo aver scaricato l'ultima immagine Docker, è necessario interrompere e rimuovere il vecchio contenitore. Quindi, creane uno nuovo con l'ultima immagine.
1. Trova il nome del contenitore in esecuzione con l'immagine obsoleta elencando i contenitori nel sistema:
sudo docker ps
In questo esempio, l'output mostra un contenitore che utilizza mysql/mysql-server:5.7.31 immagine.
2. Interrompi e rimuovi il contenitore esistente in modo da poterne avviare uno nuovo con lo stesso nome:
sudo docker stop [container_id]
sudo docker rm [container_id]
Sostituisci [container_id]
con il numero ID del contenitore.
3. Ricrea il contenitore con la docker run
comando e la configurazione desiderata, utilizzando l'immagine Docker aggiornata:
sudo docker run --name=[container_name] [options] [docker_image]
Se ne hai uno, assicurati di montare un volume Docker assegnato al contenitore utilizzato in precedenza per assicurarti che il contenitore aggiornato abbia lo stesso contenuto. Per fare ciò, usa il -v
opzione seguita dal percorso della directory del volume.
Ad esempio, per eseguire un contenitore MySQL di aggiornamento, eseguire:
sudo docker run --name=mysql --restart=always -e MYSQL_ROOT_PASSWORD=mypassword -v /path/to/directory:/var/lib/mysql -d mysql
4. Puoi verificare se il tuo container è stato aggiornato con l'ultima immagine Docker elencando i container con:
sudo docker ps