Configurazione nuova VPS: Docker e Docker-Compose

Capitoli precedenti
- Configurazione nuova VPS: nuovo utente, chiave SSH, firewall.
- Configurazione nuova VPS: NGINX e sito statico.
- Configurazione nuova VPS: installare un certificato SSL nel nostro sito

Docker è un tool che permette di eseguire dei container; un container è sostanzialmente una piccolissima macchina virtuale (è un termine estremamente improprio, ma rende l'idea) al cui interno si possono lanciare dei servizi, tipicamente uno per container. Un giorno scriverò un post più dettagliato al riguardo, ma là fuori ci sono milioni di tutorial migliori di qualunque cosa potrei scrivere io. Per ora ci limitiamo ai passaggi necessari per l'installazione di docker nella nostra nuova VPS.

Le modalità di installazione di docker dipendono dalla distribuzione installata; gli esempi sotto presuppongono l'uso di Ubuntu.

Ogni distribuzione ha il suo sistema di distribuzione dei pacchetti, e ogni distribuzione tarda nell'aggiornarli (in particolare Ubuntu :-|); per questo motivo andremo ad usare direttamente i repository ufficiali.

Fase 1: rimuovere eventuali installazioni esistenti

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Fase 2: installare le dipendenze

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

Fase 3: aggiungere la chiave GPG del repository

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Fase 4: aggiungere il repository vero e proprio

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Fase 5: installare Docker

 $ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

Fase 6: installare docker-compose (usiamo PIP3, il package manager di python, per semplificare l'installazione e i futuri aggiornamenti).

$ sudo pip3 install docker-compose

Fase 7 (opzionale): abilitiamo un utente non amministrativo all'utilizzo di docker, che altrimenti sarebbe da usare sempre da root. E' sufficiente aggiungere l'utente (o gli utenti) al gruppo docker:

### il gruppo potrebbe non esistere, quindi lo creiamo
$ sudo groupadd docker

### Aggiungiamo l'utente XXX al gruppo
$ sudo usermod -aG docker XXX

Dopo queste operazioni è necessario rifare il login per far si che l'utente veda correttamente le modifiche nell'assegnazione del gruppo.

Fase 8: test

Esiste una immagine docker denominata "hello-world" fatta apposta per provare le nuove installazioni. Proviamo a lanciarla. Se non otteniamo errori, significa che l'installazione è andata a buon fine.

$ sudo docker run hello-world

Fonti:

- Guida ufficiale installazione