Linux

Fedora 31 Üzerine Docker Nasıl Kurulur ve Kullanılır (Ve Alternatifleri)

Fedora logosu

Fedora 31 bunu yapan ilk büyük Linux dağıtımı olan v2 grubuna geçti. Docker, cgroup v2'yi desteklemiyor, bu nedenle en son Fedora sürümünde çalışmıyor. Bu makale, seçeneklerinizi ve alternatifleri beğenmiyorsanız, Fedora 31’de Docker’ın nasıl kurulacağını açıklar.

CGroup (kontrol grubu) bir Linux çekirdeği özelliğidir. süreçleri hiyerarşik olarak düzenler ve sistem kaynaklarını hiyerarşi boyunca kontrollü ve yapılandırılabilir bir şekilde dağıtır. v2 grubu ilk olarak Linux çekirdeği 4.5'te ortaya çıktı ve v1'den farklı olarak, yalnızca tek bir süreç hiyerarşisine sahiptir ve süreçler arasında ayrım yapar, iş parçacığı değil. Okumanı öneririm Bu makale Fedora 31 ve kontrol grubu v2'de.

Fedora 31, v2 gruplarına geçtiğinden, Docker artık çalışmıyor. Örneğin, Docker kullanarak bir kapsayıcı çalıştırmaya çalışırken Fedora 31 sistemimde bu hata çıkıyor:

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.

Peki şimdi Fedora 31'in v2 gruplarını kullandığı ve Docker'ın artık çalışmadığı için ne yapabilirsiniz? Docker CE'yi yüklemek için bir geçici çözüm de dahil olmak üzere, aşağıda bazı seçenekleri bulacaksınız.

Seçenek # 1: Fedora 31'de Docker yerine Podman kullanın

Pod Yöneticisi aracı (podman), hemen hemen tüm Docker CLI komutlarını uygulayan ve kapları ve bölmeleri çalıştırmak için bir arka plan gerektirmeyen bir RedHat destekli cgroup v2 uyumlu kap motorudur. Bu, Fedora'nın önerdiği seçenektir.

Podman, varsayılan olarak Fedora 31'e yüklenmiştir, bu nedenle kullanmak için yapmanız gereken hiçbir şey yoktur. Sadece koş podman onun yerine docker, Örneğin.:

podman run -it --rm hello-world:latest

Seçenek # 2: v1 grubuna geçin, Fedora 31'e Moby Engine veya Docker CE kurun ve kullanın

V1 grubuna geçin.

Podman kullanmanın yanı sıra (seçenek # 1), Fedora 31 sisteminizi kernel parametresini ileterek cgroup v1'e geçirme seçeneğiniz vardır. systemd.unified_cgroup_hierarchy=0.

Bu, (kalıcı olarak) komut satırından aşağıdaki gibi yapılabilir:

sudo dnf install grubby

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


Bundan sonra, sisteminizi yeniden başlatın, şimdi ikisini de kullanma seçeneğiniz olacak. moby-engine (Docker CLI ve Docker Engine'i içerir) veya Docker CE.

Bu değişikliği daha sonra geri almak isterseniz, çekirdek parametresini iletin systemd.unified_cgroup_hierarchy tartışmasız veya true Bir argüman olarak. Bu, birleşik grup hiyerarşisinin (cgroup v2) kullanımını yeniden etkinleştirir, örn .:

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

Docker yerine moby-engine kullanın.

Liman işçisi Fedora 31'den kaldırıldı, yerini aldı. moby-engine (Her ikisi de henüz v2 gruplarını desteklemiyor). Moby ve Docker ile olan ilişkisine aşina değilseniz, okumanızı öneririz Bu makale.

Yüklemek moby-engine (Docker CLI ve Docker Engine dahil) Fedora 31’de, servisini etkinleştirmek ve başlatmak için aşağıdakileri kullanın:

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

Ayrıca, kullanıcıyı kullanıcıyı docker gruplayın, böylece süper kullanıcı ayrıcalıklarıyla çalıştırmak zorunda kalmazsınız:

sudo usermod -aG docker $(whoami)

Bundan sonra kullanmak için sisteminizi yeniden başlatmanız gerekir. moby-engine süper kullanıcı ayrıcalıkları olmadan (ör. sudo).

Şimdi kullanabilirsiniz moby-engine Docker gibi, ör.

docker run -it --rm hello-world:latest

Sadece Fedora 31’de Docker CE’nin nasıl kurulduğunu göster.

Sevmek moby-engine, Docker Engine – Topluluk v2 grubunu desteklemediğinden, devam etmeden önce yukarıda açıklandığı gibi v1 grubuna geçin.

Docker CE kullanmak istiyorsanız, kaldırın. moby-engine daha önce kurduysanız:

sudo dnf remove moby-engine

Şimdi Docker CE Fedora deposunu ekleyebilir, Docker CE'yi yükleyebilirsiniz (bu da yüklenir) docker-ce-cli ve containerd.io) etkinleştirmek ve daemonunu başlatmak:

sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce 
sudo systemctl enable --now docker

Ayrıca, kullanıcıyı kullanıcıyı docker gruplandırın, böylece süper kullanıcı ayrıcalıklarına sahip Docker'ı çalıştırmanıza gerek kalmaz:

sudo usermod -aG docker $(whoami)

Bundan sonra, süper kullanıcı ayrıcalıklarına sahip olmayan Docker’ı kullanmak için sisteminizi yeniden başlatmanız gerekir (örn. sudo).

Ekstra kaynaklar (makalede daha önce bağlantılı olanların yanı sıra):

Daha Fazla Göster

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kapalı