Ciao a tutti,
nell’articolo di oggi vi racconto come ho installato Docker su una macchina Oracle Linux. Ho avuto la necessità di fare quanto segue per configurare un server locale base con alcuni strumenti di devops / utility (es. homer dashboard per centralizzare alcuni link ai tool aziendali, Sonarqube, Gitlab runner, ecc..).
La macchina sulla quale ho seguito questa procedura era una virtual machine Linux Red Hat su cloud Oracle. Vediamo ora cosa ho fatto e perchè.
Step 1: conosciamo la macchina
Prima di installare qualsiasi cosa, vediamo con cosa abbiamo a che fare. Il comando hostnamectl ci dà tutte le informazioni che servono:

La macchina è una Oracle Linux Server 9.6 in esecuzione come VM (KVM su QEMU) con architettura arm64. Il dettaglio importante è un altro: Oracle Linux è una distribuzione RHEL-compatibile (lo si vede anche dal CPE cpe:/o:oracle:linux:9:6:server), con kernel UEK (Unbreakable Enterprise Kernel) di Oracle. Questo significa che, pur non essendo Oracle Linux tra le piattaforme ufficialmente supportate da Docker, possiamo seguire la guida ufficiale per RHEL.
Altra cosa importantissima: hostname “endor”, non è un caso, è esattamente il pianeta degli Wookie!
Perché c’è Podman e non Docker?
Cercando docker nei repository di default si trova solo Podman. Il motivo è una scelta di Red Hat: a partire da RHEL 8, Docker è stato rimosso dai repository ufficiali in favore di Podman, il loro container engine daemonless è compatibile con la CLI di Docker. Oracle Linux, essendo una derivata RHEL, eredita la stessa impostazione.
Podman è un’ottima alternativa ma nel mio caso serviva Docker (anche per sfruttare docker compose), quindi sono andato di repository ufficiale.
Step 2: rimuoviamo podman
Come pria cosa ho rimosso eventuali installazioni precedenti e podman, per evitare conflitti con la versione dei pacchetti nella fase successiva.
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runcStep 3: installazione docker
Come dicevamo, Docker non è nei repo di Oracle Linux: dobbiamo aggiungere il repository ufficiale di Docker per RHEL. Questo passaggio è necessario anche perché il plugin docker compose arriva proprio da lì.
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoOra possiamo installare Docker Engine con tutti i componenti:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginIn un colpo solo abbiamo: il demone (docker-ce), la CLI (docker-ce-cli), il runtime (containerd.io) e i plugin per buildx e compose. Non ci rimane che abilitare e avviare il nostro docker:
sudo systemctl enable --now dockerStep 4: docker hello-world
Per testare il corretto funzionamento di docker avviamo l’immagine hello-world
sudo docker run hello-world
Step 5: usiamo Docker senza sudo
Lanciare ogni comando con sudo diventa presto fastidioso e la via corretta è quella aggiungere il proprio utente al gruppo docker. Come primo passo creiamo il gruppo, se non esiste già:
sudo groupadd dockerNel mio caso il gruppo era già stato creato dall’installazione:

Ora aggiungiamo al gruppo il nostro utente (ed eventuali altri utenti della macchina che dovranno poter gestire il servizio):
sudo usermod -aG docker $USER
sudo usermod -aG docker mario.rossiNota: per rendere effettiva l’appartenenza al gruppo serve un logout/login (o un riavvio della sessione SSH).
ATTENZIONE: il comando usermod va eseguito con privilegi elevati
Conclusioni
In questo articolo abbiamo visto come installare docker come alternativa a podman (che rimane la scelta consigliata e ufficiale di Oracle e RedHat). Nel mio caso avevo una serie di strumenti con docker-compose già preparati che volevo migrare su questo server e questo mi ha costretto a non seguire la strada di podman.
Se invece parti da zero, ti consiglio di valutare prima podman: nella maggior parte dei casi copre le stesse esigenze, è già integrato nei repository ufficiali e non richiede un demone in esecuzione. La scelta di Docker resta sensata quando hai vincoli specifici (come la migrazione di setup esistenti) o dipendenze dirette dal suo ecosistema.
Grazie per aver letto, alla prossima!
Note originali dell’idea (per confronto in revisione, da rimuovere):
- Spiegare come ho installato docker su Oracle
- Farsi spiegare da Sergio perchè sulle macchine Linux è già preinstallato un pacchetto che supporta docker/podman
- Che tipologia di macchina è stata avviata? RedHat ma di che tipologia? → risposta dall’immagine hostnamectl: Oracle Linux Server 9.6, VM KVM, arm64
- Step: hostnamectl (img), guida ufficiale docker per RHEL, dnf remove, add repo, install, enable –now, hello-world (img), groupadd docker (img), usermod -aG docker (utenti reali sostituiti con $USER/mario.rossi nella bozza), logout-login, nota sudoers
- Link di riferimento delle note: https://collabnix.com/how-to-install-docker-on-oracle-linux-a-step-by-step-guide/