Docker è uno strumento utilizzato per eseguire il software in un container. È un ottimo modo per sviluppatori e utenti di preoccuparsi meno della compatibilità con un sistema operativo e delle dipendenze perché il software contenuto dovrebbe funzionare in modo identico su qualsiasi sistema.
Docker è disponibile per il download e l'installazione su Fedora così come sulla maggior parte delle altre distribuzioni di Linux. Tuttavia, installarlo su Fedora può essere un po' complicato perché Red Hat non offre supporto nativo per Docker sulle sue distribuzioni. Invece, Red Hat spinge il supporto per Podman, un'alternativa a Docker. Questo rende Docker un po' più difficile da installare, ma è ancora possibile su Fedora.
In questa guida, ti mostreremo come installare Docker su Fedora e inizieremo con l'installazione di software containerizzato. Dopo aver installato Docker, puoi usarlo per installare pacchetti software più o meno allo stesso modo in cui utilizzeresti il gestore pacchetti della tua distribuzione per scaricare un'app. La differenza nell'utilizzo di Docker è che tutto è più automatizzato, con compatibilità e dipendenze che non rappresentano più potenziali problemi.
In questo tutorial imparerai:
- Come installare Docker
- Come avviare Docker e farlo funzionare automaticamente all'avvio
- Come eseguire Docker senza root
- Come cercare un'immagine Docker
- Come installare un'immagine Docker
- Come eseguire un'immagine Docker
- Come monitorare Docker con vari comandi
- Come avviare automaticamente un container Docker
Docker che esegue un'immagine contenitore su Fedora Linux
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Fedora Linux |
Software | Docker |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Installa Docker su Fedora
Red Hat ha posto alcuni ostacoli sulla nostra strada, quindi non possiamo semplicemente installare Docker con una semplice dnf install
comando. Dovremo prima aggiungere il repository Docker al nostro sistema, quindi disinstallare alcuni pacchetti in conflitto installati per impostazione predefinita su Fedora.
- Inizia installando il
dnf-plugins-core
pacchetto, nel caso non sia già sul tuo sistema. Ciò ti consentirà di gestire i tuoi repository dnf e di aggiungervi il repository Docker ufficiale.$ sudo dnf -y install dnf-plugins-core
- Quindi, aggiungi il repository Docker al tuo sistema con il seguente comando.
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
- Prima di iniziare l'installazione di Docker, dobbiamo rimuovere il
podman
ebuildah
pacchetti dal nostro sistema, poiché sono in conflitto con Docker e ne impediscono l'installazione.$ sudo dnf remove podman buildah
- Infine, possiamo installare i tre pacchetti Docker di cui avremo bisogno eseguendo il seguente comando.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
- Una volta completata l'installazione, avviare il servizio Docker e, facoltativamente, abilitarlo all'esecuzione al riavvio del sistema:
$ sudo systemctl start docker.service $ sudo systemctl start containerd.service $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
- Puoi verificare che Docker sia installato e raccogliere alcune informazioni sulla versione corrente inserendo questo comando:
$ sudo docker version
- C'è anche un modo semplice e veloce per vedere quanti container Docker sono attualmente in esecuzione e vedere alcune delle opzioni configurate da Docker inserendo:
$ sudo docker info
Output del comando info docker che mostra la sua configurazione
Output del comando della versione della finestra mobile
Esegui Docker senza root
Per impostazione predefinita, dovrai utilizzare sudo
o accedi a root ogni volta che desideri eseguire un comando Docker. Questo passaggio successivo è facoltativo, ma se preferisci la possibilità di eseguire Docker come utente corrente, aggiungi il tuo account al gruppo Docker con questo comando:
$ sudo usermod -aG docker $USER
Dovrai riavviare il sistema per rendere effettive le modifiche.
$ reboot
Ricerca di un'immagine Docker
Ora sei pronto per installare le immagini con Docker. Se conosci già il nome di un'immagine che desideri installare, puoi passare alla sezione successiva. Se devi cercare in Docker il software desiderato, puoi utilizzare la seguente sintassi dei comandi:
$ docker search [name]
Ad esempio, proviamo a cercare nginx, che è un popolare software per server web.
$ docker search nginxDocker può cercare qualsiasi immagine contenitore disponibile
Come puoi vedere, esiste un'immagine ufficiale per nginx (indicata da OFFICIAL
column) chiamato semplicemente nginx
. Sono disponibili anche altre versioni e dovresti leggere le loro descrizioni per vedere cosa fanno di diverso dall'immagine ufficiale.
Installa un'immagine Docker
Una volta che sai quale immagine desideri installare, puoi utilizzare il seguente comando per istruire Docker a scaricare il software desiderato. A titolo di esempio, installeremo hello-world
pacchetto che può essere utilizzato per assicurarsi che Docker sia in grado di scaricare ed eseguire correttamente le immagini.
$ docker pull hello-world
Docker che scarica un'immagine contenitore
L'output nello screenshot sopra indica che Docker è stato in grado di trovare e scaricare l'immagine che abbiamo specificato.
Esecuzione di un'immagine Docker
Ora che l'immagine è stata scaricata, eseguila con il seguente comando:
$ docker run hello-worldDocker è stato in grado di eseguire correttamente l'immagine hello-world
Monitoraggio Docker
Docker ci offre molte opzioni per vedere cosa sta succedendo con le nostre immagini, quante risorse di sistema stanno utilizzando, ecc. I seguenti comandi sono utili per monitorare Docker e le nostre immagini installate.
Per vedere quali container Docker sono in esecuzione e verificarne lo stato corrente, digita:
$ docker container lsIl comando docker container ls mostra i container attualmente in esecuzione
Per visualizzare un elenco di tutte le immagini Docker installate, digita:
$ docker images
Il comando immagini Docker mostra quali immagini sono attualmente installate in Docker
Per vedere l'utilizzo corrente di CPU, RAM e rete delle immagini in esecuzione, digita:
$ docker statsVisualizza l'utilizzo corrente del sistema delle immagini Docker con il comando docker stats
Per vedere la configurazione di rete di Docker, digita:
$ docker network lsVisualizza le reti attualmente configurate in Docker con rete Docker ls
Avvia automaticamente un container
Abbiamo già visto come assicurarsi che il servizio Docker si avvii automaticamente all'avvio del computer. Nel caso tu abbia saltato quel passaggio, ecco di nuovo il comando.
$ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
Possiamo anche controllare i servizi Docker per avviarli automaticamente. Ecco alcuni comandi per controllare il loro comportamento. Useremo nginx
come il nostro software di esempio in questi comandi.
- Per avviare un nuovo container e configurarlo per il riavvio automatico a meno che non sia stato interrotto o Docker non sia stato riavviato, eseguire il comando seguente.
$ docker run -d --restart unless-stopped nginx
- Se il container è già in esecuzione, usa questo comando per assicurarti che si riavvii automaticamente.
$ docker update --restart unless-stopped nginx
- Possiamo anche assicurarci che tutti i contenitori vengano riavviati automaticamente, a meno che non siano stati arrestati in modo esplicito, utilizzando il comando seguente.
$ docker update --restart unless-stopped $(docker ps -q)
- Per riavviare sempre un container, anche se è stato interrotto manualmente, utilizza
always
opzione invece diunless stopped
.$ docker update --restart always nginx
- Puoi anche usare il
on-failure
opzione per consentire il riavvio automatico dei contenitori solo se hanno riscontrato un errore.$ docker update --restart on-failure nginx
- Infine, per riconfigurare il tuo container sull'impostazione predefinita, il che significa nessun riavvio automatico, usa il
no
opzione.$ docker update --restart no nginx
Risoluzione dei problemi
Se riscontri problemi con Docker, inclusi errori di autorizzazione o "Impossibile connettersi al demone Docker", gli sviluppatori Docker hanno uno script pratico che puoi eseguire per verificare la presenza di una serie di problemi comuni. Ecco come scaricarlo ed eseguirlo.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh $ bash ./check-config.shL'esecuzione dello script Docker check-config ci mostra se qualcosa è configurato in modo errato sul nostro sistema
Pensieri conclusivi
Sebbene RHEL, e per estensione Fedora, non supporti Docker in modo nativo, è comunque possibile farlo funzionare, come abbiamo visto in questa guida. Gli strumenti nativi di RHEL come podman e buildah sono compatibili con Docker ma non necessitano di un'architettura server/client per essere eseguiti. L'utilizzo di strumenti nativi, ove possibile, è sempre il modo consigliato, ma per un motivo o per l'altro potresti comunque voler installare il Docker originale.