Installare Docker Compose su Ubuntu 18.04

Guida all'installazione di Docker Compose su Ubuntu 18.04

Docker è un software per automatizzare il deployment e la gestione delle applicazioni in un ambiente di virtualizzazione a livello di sistema operativo. Consente di «impacchettare» un'applicazione con tutto il suo ambiente e le sue dipendenze in un container che può essere portato su qualsiasi sistema Linux con supporto ai cgroups del kernel, e fornisce un ambiente per la gestione dei container.

file

Compose è uno strumento per creare ed eseguire applicazioni Docker multi-container. Con Compose, si utilizza un file apposito per configurare i servizi dell'applicazione.

Le caratteristiche che rendono Compose efficace:

  • Più ambienti isolati su un singolo host
  • Protezione dei dati del volume durante la creazione dei container
  • Vengono ricreati solo i container modificati
  • Spostamento di variabili tra gli ambienti

Prima di installare Docker Compose, assicurati che Docker sia installato — consulta questo manuale per i dettagli sull'installazione.

Installare Docker Compose

Installeremo Docker Compose dal repository Docker su GitHub. La sintassi seguente evita l'errore di permessi insufficienti che può verificarsi utilizzando sudo.

Verifica la versione attuale e aggiornala se necessario con il comando seguente:

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
root@kvmde67-19464:~# sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100   638  100   638    0     0   1898      0 --:--:-- --:--:-- --:--:--  1898
100 16.7M 100 16.7M 0 0 5709k 0 0:00:03 0:00:03 --:--:--:-- 9427k

Successivamente impostiamo i permessi:

sudo chmod +x /usr/local/bin/docker-compose

Poi verifichiamo che l'installazione sia andata a buon fine:

docker-compose --version

Dovresti vedere un output simile a questo:

root@kvmde67-19464:~# docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6

Avviare il container con Docker Compose

Il registro Docker, Docker Hub, contiene un'immagine Hello World utilizzata per dimostrazioni e test. Illustra i parametri di configurazione minimi necessari per avviare un container con Docker Compose: un file YAML che richiama una singola immagine.

Crea una directory per il file YAML:

mkdir hello-world

Entra nella directory:

cd hello-world

Poi crea un file YAML in quella directory:

nano docker-compose.yml

Inserisci nel file i dati seguenti, salvalo e chiudi l'editor di testo:

my-test:
 image: hello-world

La prima riga del file YAML viene usata come parte del nome del container. La seconda riga specifica quale immagine viene usata per creare il container. Quando esegui il comando docker-compose up, verrà cercata l'immagine locale con il nome indicato, ovvero hello-world.

file

Puoi quindi visualizzare le immagini presenti nel sistema con il comando docker images:

docker images

Se non ci sono immagini locali, verranno mostrate solo le intestazioni delle colonne:

REPOSITORY TAG IMAGE ID CREATED SIZE

Sempre nella directory ~/hello-world, esegui il comando seguente:

docker-compose up

Dopo aver scaricato l'immagine, docker-compose crea un container, vi inserisce e avvia il programma hello:

root@kvmde67-19464:~/hello-world# docker-compose up
Pulling my-test (hello-world:)
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:8e3114318a995a1ee497790535e7b88365222a21771ae7e53687ad76563e8e76
Status: Downloaded newer image for hello-world:latest
Creating hello-world_my-test_1 ... done
Attaching to hello-world_my-test_1
my-test_1 | 
my-test_1 | Hello from Docker!
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 | 
my-test_1 | To generate this message, Docker took the following steps:
my-test_1 | 1. The Docker client contacted the Docker daemon.
my-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
my-test_1 | (amd64)
my-test_1 | 3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
my-test_1 to your terminal.
my-test_1 | 
my-test_1_1 | To try something more ambitious, you can run an Ubuntu container with:
my-test_1 | $ docker run -it ubuntu bash
my-test_1 | 
my-test_1 | Share images, automate workflows, and more with a free Docker ID:
my-test_1 | https://hub.docker.com/
my-test_1 | 
my-test_1 | For more examples and ideas, visit:
my-test_1 | https://docs.docker.com/get-started/
my-test_1 | 
hello-world_my-test_1 exited with code 0

I container Docker continuano a girare finché il comando rimane attivo, quindi quando il container hello termina, si ferma automaticamente. Di conseguenza, visualizzando i processi attivi, compariranno le intestazioni delle colonne, ma il container hello-world non sarà presente nell'elenco perché non è in esecuzione.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Usando il flag -a è possibile visualizzare tutti i container, non solo quelli attivi:

docker ps -a
root@kvmde67-19464:~/hello-world# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfaaf998ecd6 hello-world "/hello" 45 seconds ago Exited (0) 43 seconds ago hello-world_my-test_1
Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci