GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Docker su Fedora 32 o 31 (e alternative)

[[Modifica]]Docker 10/20 ha aggiunto il supporto per cgroups v2 e Firewalld, quindi questo articolo non è aggiornato. Per informazioni sull'installazione di Docker su Fedora, vedere la documentazione ufficiale.

Fedora 31 è stata la prima grande distribuzione Linux a passare a cgroup v2. Tuttavia, Docker non supporta cgroup v2, quindi non funzionerà sull'ultima versione di Fedora. Questo articolo spiega le tue opzioni e come installare Docker su Fedora 31 se non ti piacciono le alternative. [[Modifica] Questo era originariamente per Fedora 31, ma tutto in questo articolo si applica anche a Fedora 32; Non esiste un repository Docker CE per Fedora 32, ma utilizziamo invece il repository Fedora 31.

Il gruppo di controllo (Gruppo di controllo) è una funzionalità del kernel Linux che organizza i processi in modo gerarchico e distribuisce le risorse di sistema in modo controllato e configurabile lungo la gerarchia . Group Leader v2 è apparso per la prima volta nel kernel Linux 4.5 e in contrasto con v1 ha solo una singola gerarchia di processi e distingue tra processi, non thread . Consiglio di leggere questo post su Fedora 31 e gruppo di controllo v2.

Docker ha smesso di funzionare da quando Fedora 31 (e Fedora 32) è passato a cgroups v2. Ad esempio, questo errore si verifica sul mio sistema Fedora 31 quando provo a eseguire un container con Docker:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:297: applying cgroup configuration for process caused "open /sys/fs/cgroup/docker/cpuset.cpus.effective: no such file or directory"": unknown.

Su Fedora 32 ottengo invece questo errore:

docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.

Ora cosa puoi fare ora che Fedora 32 e 31 stanno usando cgroups v2 e Docker ha smesso di funzionare? Di seguito sono riportate alcune opzioni, inclusa una soluzione alternativa per l'installazione di Docker CE. Come al solito, tutte le istruzioni sono state testate prima di essere pubblicate su Linux Uprising.

Opzione n. 1:usa Podman invece di Docker su Fedora 32 o 31

Pod manager tool (podman) è un motore container compatibile cgroup v2 supportato da RedHat che implementa quasi tutti i comandi Docker CLI e non richiede un demone per eseguire container e pod. Questa è l'opzione consigliata da Fedora.

Podman è installato per impostazione predefinita su Fedora 32 e 31, quindi non devi fare nulla per usarlo. Basta eseguire podman Invece di docker , ad esempio:

podman run --rm hello-world:latest

Opzione n. 2:passa a cgroup v1, installa e usa Moby Engine o Docker CE su Fedora 32 o 31

Passa a Control Group v1.

Oltre a usare Podman (opzione n. 1), hai la possibilità di aggiornare il tuo sistema Fedora 32 o 31 a cgroup v1 passando il parametro del kernel systemd.unified_cgroup_hierarchy=0 .

Questo può essere fatto (permanentemente) tramite la riga di comando come segue:

sudo dnf install grubby
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

Dopodiché, riavvia il sistema e ora avrai la possibilità di utilizzare uno dei due moby-engine (include Docker CLI e Docker Engine) o Docker CE.

Se in seguito desideri annullare questa modifica, passa il parametro del kernel systemd.unified_cgroup_hierarchy senza argomento o con true come argomento. Ciò riattiva l'uso della gerarchia Cgroup uniforme (Cgroup v2), ad es. B.:

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy"

Usa moby-engine invece di Docker.

Docker è stato rimosso da Fedora 32 e 31 e verrà sostituito da moby-engine (Tuttavia, entrambi non supportano ancora cgroups v2). Se non conosci Moby e il suo rapporto con Docker, ti consiglio di leggerlo in questo post.

Per installare moby-engine (include Docker CLI e Docker Engine) su Fedora 32 o 31, attiva e avvia il suo demone, usa:

sudo dnf install moby-engine
sudo systemctl enable --now docker

Potresti anche volere che il tuo utente docker Raggruppa in modo da non doverli eseguire con privilegi di superutente:

sudo usermod -aG docker $(whoami)

Dopodiché, è necessario riavviare il sistema per poterlo utilizzare moby-engine senza diritti di superutente (ad es. sudo ).

Ora puoi usare moby-engine come Docker, ad esempio:

docker run --rm hello-world:latest

Potrebbe interessarti anche:LazyDocker:Nuova interfaccia utente Docker e Docker Compose Terminal

Fammi solo vedere come installare Docker CE su Fedora 32 o 31.

Mettere mi piace a moby-engine , Docker Engine Community non supporta cgroup v2, quindi passa a cgroup v1 come descritto sopra prima di procedere.

Se vuoi installare Docker CE, rimuovi moby-engine se l'hai installato prima:

sudo dnf remove moby-engine

Ora puoi aggiungere il repository Docker CE Fedora:

  • Per Fedora 31:
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

  • Per Fedora 32 (non esiste un repository Docker CE per Fedora 32, quindi stiamo usando il repository Fedora 31):
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo sed -i 's/$releasever/31/g' /etc/yum.repos.d/docker-ce.repo

Ora puoi installare Docker CE sia su Fedora 32 che su 31 (questo verrà installato anche docker-ce-cli e containerd.io ), attiva e avvia il suo demone:

sudo dnf install docker-ce
sudo systemctl enable --now docker

Potresti anche volere che il tuo utente docker gruppo in modo da non dover eseguire Docker con privilegi di superutente:

sudo usermod -aG docker $(whoami)

Dopodiché devi riavviare il sistema per utilizzare Docker senza diritti di superutente (ad es. sudo ).

Passo aggiuntivo per Fedora 32:riparare la rete nei container Docker uso (da qui - questo menziona che il ping di qualsiasi destinazione da un contenitore Docker funziona con Fedora 32, ma le connessioni TCP / UDP non funzionano, ma nemmeno il ping ha funzionato per me):

firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload

Fonti aggiuntive (oltre a quelle già linkate nell'articolo):

  • https://fedoraproject.org/wiki/Common_F31_bugs#Other_software_issues
  • https://docs.docker.com/install/linux/docker-ce/fedora/
  • https://kofler.info/docker-unter-centos-8-und-fedora-31-installieren/ (tedesco)


Cent OS
  1. Come installare Docker in Fedora [Tutorial per principianti]

  2. Come installare Python 3.5 su CentOS/RHEL e Fedora

  3. Come installare e utilizzare Docker in Ubuntu 20.04

  4. Come installare e configurare Ansible su Fedora 35

  5. Come installare Python 2 e Python 3 su Fedora 35

Come installare Docker in Fedora [Tutorial per principianti]

Come installare e configurare Jenkins in Fedora 35

Come installare Vai su Fedora 35

Come installare Docker su Fedora 35

Come installare Wine 5.0 su CentOS, RHEL e Fedora

Come installare e utilizzare Docker su Ubuntu 22.04