Come eseguire l'aggiornamento a Docker Compose v2
Agenzia web » Notizie digitali » Come eseguire l'aggiornamento a Docker Compose v2

Come eseguire l'aggiornamento a Docker Compose v2

Dopo quasi un anno di beta, Docker Compose v2 è generalmente disponibile come versione stabile dello strumento di gestione dei container. La maggior parte degli utenti dovrebbe essere in grado di effettuare il passaggio oggi. In questa guida, ti mostreremo come preparare e applicare l'aggiornamento.

Cosa c'è di nuovo nella v2?

Docker Compose v2 porta le familiari funzionalità di Compose nella vita di tutti i giorni docker CLI. Invece di interagire con un altro docker-compose binario che stai usando ora docker compose. Compose è integrato con Docker.

Puoi sostituire i comandi in questo modo:

$ docker-componi -d

Con la seguente invocazione:

$ docker compone -d

Compose v2 include anche alcune nuove funzionalità che migliorano l'esperienza dell'utente:

  • È possibile utilizzare docker compose cp per copiare i file tra l'host e i contenitori.
  • I fornitori di cloud sono obiettivi validi, permettendoti docker compose up per distribuire container su Amazon ECS o Microsoft ACI.
  • I profili di servizio sono completamente supportati, semplificando l'inclusione selettiva di contenitori in uno stack.
  • Gestione semplificata del progetto: esegui i comandi senza trovarti nella stessa directory del tuo docker-compose.yml cartella con docker compose --project-name my-project stop . C'è anche una novità docker compose ls comando che elenca tutti i tuoi progetti Compose.
  • Docker Compose è ora scritto in Go, come Docker stesso, invece di essere un'utilità Python separata. Ciò consente a Compose di riutilizzare il codice Docker CLI di base, creando un comportamento più coerente.

Incompatibilità con v1

Compose v2 è compatibile con v1 in quasi tutti i casi d'uso. Non è necessario modificare il tuo docker-compose.yml file o imparare nuovi comandi, ad eccezione della modifica docker-compose à docker compose. Se hai i tuoi strumenti intorno al docker-compose comando, puoi cambiarlo in call docker compose Invece.

Sebbene la maggior parte delle migrazioni dovrebbe essere semplice, Compose v2 introduce alcune modifiche sostanziali che potrebbero influire su casi d'uso specifici:

  • I contenitori ora vengono creati con trattini nei loro nomi invece di caratteri di sottolineatura. Significa un servizio chiamato db all'interno app il progetto ora creerà un contenitore chiamato app-dbinvece di app_db. Ciò potrebbe interrompere gli script che prevedono l'utilizzo del vecchio formato del nome del contenitore. La modifica può essere attualmente disabilitata includendo il --compatibility bandiera con docker compose ordini.
  • docker compose build costruito con BuildKit per impostazione predefinita. BuildKit è il moderno sistema di imaging di Docker, in grado di creare build molto più veloci. BuildKit è il sistema di compilazione consigliato, ma sono ancora presenti alcune incompatibilità con il meccanismo di compilazione legacy che potrebbero causare problemi in determinate circostanze. Puoi disabilitare BuildKit impostando il DOCKER_BUILDKIT=0 variabile d'ambiente prima dell'esecuzione docker compose ordini.
  • Alcuni flag di comando obsoleti sono stati rimossi. docker compose rm --all non è supportato e il docker compose scale il comando viene omesso a favore di docker compose up --scale. Dovrai modificare tutti gli script che si basano su docker-compose versioni di questi comandi.

Aggiornamento su Linux

Sebbene Compose ora si integri con Docker CLI, non è abilitato per impostazione predefinita in Docker Engine. Puoi installare Compose v2 aggiungendolo come plug-in Docker CLI. Devi avere la versione Docker v20.10.13 o successiva.

Aggiorna i tuoi repository di pacchetti e installa docker-compose-plugin:

$ sudo apt update $ sudo apt install docker-compose-plugin

Verifica che l'installazione sia riuscita recuperando la versione Docker Compose:

$ docker Compose versione Docker Compose versione v2.3.3

Ora puoi rimuovere Docker Compose v1, a meno che tu non voglia mantenerlo per la compatibilità con gli script legacy. Tutti e due docker-compose (v1) e docker compose (v2) possono coesistere se ne hai bisogno. Se rimuovi v1, normalmente si trova come un singolo binario attivo /usr/local/bin/docker-compose:

$ sudo rm /usr/local/bin/docker-compose

Ora puoi configurare un alias di shell per il reindirizzamento docker-compose à docker compose. Ciò ti consentirebbe di continuare a utilizzare gli script che prevedono Compose v1, utilizzando la tua nuova installazione v2.

$ echo 'alias docker-compose="docker compose"' >> ~/.bashrc $ sorgente ~/.bashrc $ versione docker-compose Docker Compose versione v2.3.3

Ora sei pronto per iniziare a gestire i tuoi container con Compose v2.

Esegui l'upgrade con Docker Desktop per Windows e Mac

Compose v2 è incluso con Docker Desktop versioni 3.4 e successive. v2 è diventata la versione predefinita di Compose in v4.4.2; se hai già effettuato l'aggiornamento, puoi utilizzare docker compose Oggi.

immagine della gestione di Docker Compose v2 nelle impostazioni di Docker Desktop

v4.4.2 anche alias docker-compose à docker compose automaticamente. Compose v1 è inaccessibile per impostazione predefinita. Puoi disabilitare questo aliasing eseguendo il file docker-compose disable-v2 comando o deselezionando la casella di controllo "Usa Docker Compose v2" nella pagina delle impostazioni di Docker Desktop. Il docker-compose Il controllo tornerà quindi a utilizzare Compose v1.

E allora?

Compose v1 rimane supportato per problemi di sicurezza e correzioni di bug "ad alta gravità" per i prossimi sei mesi. Questo supporto terminerà nell'ottobre 2022. La v1 sarà quindi considerata a fine vita, quindi il suo utilizzo dovrebbe essere evitato. A questo punto, Docker Desktop verrà aggiornato a seulement supporto v2. Dovrai usare docker compose come docker-compose l'alias verrà rimosso. Dovrai rimanere su una versione precedente se hai ancora bisogno della v1.

Puoi continuare a utilizzare v1 a tempo indeterminato installandolo come binario autonomo. Puoi trovarli rilasciati per Windows, Mac e Linux nella pagina delle versioni di GitHub del progetto. Sebbene questi binari continueranno a funzionare indefinitamente, la maggior parte dei progetti dovrebbe mirare all'aggiornamento alla v2 nel prossimo futuro. Ciò ti consentirà di accedere a tutte le correzioni di bug, agli aggiornamenti di sicurezza e alle nuove funzionalità nelle versioni moderne di Compose v2.

sommario

Docker Compose v2 è ora la versione stabile di Docker Compose. Gli utenti Docker Desktop saranno stati aggiornati automaticamente. Le installazioni Linux di Docker Engine sono supportate dal nuovo docker-compose-plugin plug-in dell'interfaccia a riga di comando.

Il supporto per Compose v1 termina in meno di sei mesi. Devi quindi verificare che i tuoi script siano compatibili, quindi adottare la v2 nelle prossime settimane. Sarai in grado di usare Componi nel docker CLI e beneficiare delle funzionalità v2 come profili di servizio e docker compose ls ordinato.

★ ★ ★ ★ ★