GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Docker di Fedora 32 atau 31 (dan Alternatif)

[[Sunting]]Docker 10/20 telah menambahkan Dukungan untuk cgroups v2 dan Firewalld, jadi artikel ini kedaluwarsa. Untuk informasi tentang menginstal Docker di Fedora, lihat dokumentasi resmi.

Fedora 31 adalah distribusi Linux besar pertama yang beralih ke cgroup v2. Namun, Docker tidak mendukung cgroup v2, sehingga tidak akan berfungsi pada Fedora versi terbaru. Artikel ini menjelaskan opsi Anda dan cara menginstal Docker di Fedora 31 jika Anda tidak menyukai alternatifnya. [[Sunting] Ini awalnya untuk Fedora 31, tetapi semua yang ada di artikel ini juga berlaku untuk Fedora 32; Tidak ada repositori Docker CE untuk Fedora 32, tetapi kami menggunakan repositori Fedora 31.

Grup kontrol (Grup kontrol) adalah fitur kernel Linux yang mengatur proses secara hierarkis dan mendistribusikan sumber daya sistem secara terkendali dan dapat dikonfigurasi di sepanjang hierarki . Pemimpin Grup v2 muncul untuk pertama kalinya di kernel Linux 4.5 dan berbeda dengan v1 hanya memiliki hierarki proses tunggal dan membedakan antara proses, bukan utas . Saya sarankan membaca Posting ini di Fedora 31 dan grup kontrol v2.

Docker telah berhenti bekerja sejak Fedora 31 (dan Fedora 32) beralih ke cgroups v2. Misalnya, kesalahan ini terjadi pada sistem Fedora 31 saya ketika saya mencoba menjalankan wadah dengan 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.

Di Fedora 32 saya mendapatkan kesalahan ini sebagai gantinya:

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

Sekarang apa yang dapat Anda lakukan sekarang karena Fedora 32 dan 31 menggunakan cgroups v2 dan Docker telah berhenti bekerja? Di bawah ini adalah beberapa opsi termasuk solusi untuk menginstal Docker CE. Seperti biasa, semua instruksi diuji sebelum dipublikasikan di Linux Uprising.

Opsi #1:Gunakan Podman sebagai ganti Docker di Fedora 32 atau 31

Alat manajer pod (podman) adalah mesin kontainer kompatibel cgroup v2 yang didukung RedHat yang mengimplementasikan hampir semua perintah Docker CLI dan tidak memerlukan daemon untuk menjalankan kontainer dan pod. Ini adalah opsi yang direkomendasikan Fedora.

Podman diinstal secara default di Fedora 32 dan 31 sehingga Anda tidak perlu melakukan apa pun untuk menggunakannya. Jalankan saja podman Alih-alih docker , misalnya:

podman run --rm hello-world:latest

Opsi #2:Beralih ke cgroup v1, instal dan gunakan Moby Engine atau Docker CE di Fedora 32 atau 31

Beralih ke Grup Kontrol v1.

Selain menggunakan Podman (opsi #1), Anda memiliki opsi untuk meningkatkan sistem Fedora 32 atau 31 Anda ke cgroup v1 dengan meneruskan parameter kernel systemd.unified_cgroup_hierarchy=0 .

Ini dapat dilakukan (secara permanen) melalui baris perintah sebagai berikut:

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

Setelah itu, restart sistem Anda dan Anda sekarang akan memiliki opsi untuk menggunakan salah satu dari dua moby-engine (termasuk Docker CLI dan Docker Engine) atau Docker CE.

Jika nanti Anda ingin membatalkan perubahan ini, berikan parameter kernel systemd.unified_cgroup_hierarchy tanpa argumen atau dengan true sebagai argumen. Ini mengaktifkan kembali penggunaan hierarki Cgroup yang seragam (Cgroup v2), mis. B.:

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

Gunakan moby-engine alih-alih Docker.

Docker telah dihapus dari Fedora 32 dan 31 dan digantikan oleh moby-engine (Keduanya belum mendukung cgroups v2, namun). Jika Anda tidak akrab dengan Moby dan hubungannya dengan Docker, saya sarankan untuk membaca Postingan ini.

Untuk menginstal moby-engine (termasuk Docker CLI dan Docker Engine) di Fedora 32 atau 31, aktifkan dan mulai daemonnya, gunakan:

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

Anda mungkin juga ingin pengguna Anda docker Grup sehingga Anda tidak perlu menjalankannya dengan hak pengguna super:

sudo usermod -aG docker $(whoami)

Setelah itu, Anda perlu me-restart sistem Anda untuk menggunakannya moby-engine tanpa hak pengguna super (mis. sudo ).

Anda sekarang dapat menggunakan moby-engine seperti Docker, misalnya:

docker run --rm hello-world:latest

Anda mungkin juga menyukai:LazyDocker:UI Terminal Penulisan Docker dan Docker Baru

Tunjukkan saja cara menginstal Docker CE di Fedora 32 atau 31.

Untuk menyukai moby-engine , Komunitas Docker Engine tidak mendukung cgroup v2, jadi beralihlah ke cgroup v1 seperti yang dijelaskan di atas sebelum melanjutkan.

Jika Anda ingin menginstal Docker CE, hapus moby-engine jika Anda menginstalnya sebelumnya:

sudo dnf remove moby-engine

Sekarang Anda dapat menambahkan repositori Docker CE Fedora:

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

  • Untuk Fedora 32 (tidak ada repositori Docker CE untuk Fedora 32, jadi kami menggunakan repositori 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

Sekarang Anda dapat menginstal Docker CE pada Fedora 32 dan 31 (ini juga akan diinstal docker-ce-cli dan containerd.io ), aktifkan dan mulai daemonnya:

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

Anda mungkin juga ingin pengguna Anda docker grup sehingga Anda tidak perlu menjalankan Docker dengan hak pengguna super:

sudo usermod -aG docker $(whoami)

Setelah itu Anda harus me-restart sistem Anda untuk menggunakan Docker tanpa hak pengguna super (mis. sudo ).

Langkah tambahan untuk Fedora 32:Perbaiki jaringan di wadah Docker gunakan (dari sini - ini menyebutkan bahwa ping target apa pun dari wadah Docker berfungsi di bawah Fedora 32, tetapi koneksi TCP / UDP tidak berfungsi, tetapi ping juga tidak berfungsi untuk saya):

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

Sumber tambahan (selain yang sudah ditautkan dalam artikel):

  • 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/ (Jerman)


Cent OS
  1. Cara Menginstal Python 3.5 di CentOS/RHEL dan Fedora

  2. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  3. Cara menginstal dan mengkonfigurasi buruh pelabuhan di Debian 11

  1. Cara Menginstal dan Mengonfigurasi Ansible di Fedora 35

  2. Cara Menginstal Python 2 dan Python 3 di Fedora 35

  3. Cara menginstal dan Konfigurasi Mariadb di Fedora 35

  1. Cara Menginstal dan Menggunakan Docker di CentOS 7

  2. Cara Memasang Docker di Fedora [Tutorial Pemula]

  3. Cara menginstal dan menggunakan Podman di Fedora 34/35