Cara Menginstal dan Mengkonfigurasi Mesin Docker-CE/Moby di Fedora 32

Cara Menginstal dan Mengkonfigurasi Mesin Docker-CE/Moby di Fedora 32

Bahkan jika Red Hat telah berkembang podman Dan buildah, Alatnya sendiri untuk bekerja dengan wadah, yang datang dengan beberapa keuntungan penting seperti arsitektur tanpa asyem, Anda mungkin ingin terus menggunakan perangkat lunak Docker asli di Fedora. Dalam tutorial ini kami akan mengeksplorasi opsi yang kami miliki pada rilis terbaru dari distribusi untuk melakukannya, dan akan melihat bagaimana menerapkan perbaikan yang diperlukan untuk Docker untuk bekerja dengan benar.

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal moby-engine
  • Cara menginstal Docker-CE
  • Cara menerapkan solusi yang dibutuhkan untuk membuat docker berjalan dengan benar di fedora 32


Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Fedora 32
Perangkat lunak Tidak diperlukan perangkat lunak khusus untuk mengikuti tutorial ini
Lainnya Root Izin untuk melakukan tugas administratif
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Moby-Engine vs Docker-CE

Ada dua cara kami dapat memperoleh Docker di Fedora 32: kami dapat menginstal paket "Docker" dari repositori distribusi resmi, atau menambahkan Docker-CE yang dan pasang paket yang dibutuhkan dari sana. Jika kami memilih opsi pertama, Moby-Engine Paket akan diinstal pada distribusi kami, bukan yang sebenarnya buruh pelabuhan melepaskan. Jika kami memilih yang kedua, kami akan mendapatkan rilis terbaru dari edisi komunitas "Resmi" Docker-Engine.

Apa perbedaan antara keduanya? "Moby" adalah proyek open-source "hulu" yang dibuat oleh Docker agar mudah mendistribusikan dan membagi basis kode menjadi beberapa komponen. Perangkat lunak yang kami dapatkan Moby-Engine langsung dari repositori fedora resmi dikemas oleh distribusi di pangkalan proyek hulu ini, sementara Docker-CE (dan juga Docker-ee - Edisi perusahaan) adalah produk yang dibuat oleh buruh pelabuhan Proyek di pangkalan yang sama. Keduanya dirilis di bawah lisensi open source dan tersedia secara bebas.

Dalam tutorial ini kita akan melihat cara melakukan pemasangan Docker-CE atau Moby-Engine, Dan kami juga akan melihat cara menerapkan perbaikan yang diperlukan untuk membuat Docker berfungsi dengan benar pada versi terbaru Fedora.

Menginstal Moby-Engine dari repositori resmi

Menginstal Moby-Engine Ini adalah cara termudah dan tercepat untuk bekerja dengan wadah menggunakan arsitektur klien-server Docker pada distribusi. Yang harus kita lakukan adalah menggunakan dnf, Manajer Paket Fedora, dan menjalankan perintah berikut:

$ sudo DNF menginstal Docker Metadata Last Metadata Expiration Check: 1:38:14 yang lalu di Sun 03 Mei 2020 02:22:22 PM CEST. Ketergantungan diselesaikan. ==================================================== =============================== Paket Versi Arch Repo Ukuran ================= ==================================================== =============== Menginstal: Moby-Engine x86_64 19.03.8-1.ce.gitafacb8b.FC32 Fedora 51 m Memasang Dependensi: Container-Elinux Noarch 2: 2.132.0-1.Pembaruan FC32 48 K Containerd X86_64 1.3.3-1.Pembaruan FC32 32 M Libbsd x86_64 0.10.0-2.FC32 Fedora 106 K Libnet x86_64 1.1.6-19.FC32 Fedora 64 K RUNC X86_64 2: 1.0.0-144.dev.gite6555cc.FC32 Fedora 2.7 m Memasang dependensi lemah: CRIU X86_64 3.13-5.FC32 Fedora 492 K Ringkasan Transaksi ============================================== =======================KAN Apakah ini ok [y/n]: 


Seperti yang Anda lihat, bahkan jika kami menentukan buruh pelabuhan Sebagai paket, Moby-Engine Versi: kapan 19.03.8-1.ce.gitafacb8b.FC32 akan benar -benar diinstal, bersama dengan ketergantungannya.

Menginstal Docker-CE

Docker Community Edition (CE) adalah versi Docker "resmi", yang, seperti yang kami katakan sebelumnya, didasarkan pada proyek Moby. Menginstal Fedora 32 membutuhkan lebih banyak langkah. Jika Anda sebelumnya menginstal versi Docker yang tersedia dari repositori Fedora (Moby-Engine), pastikan untuk menghapus instalannya dengan menjalankan perintah berikut:

$ sudo dnf autoremove docker 

Jika Anda sebelumnya membangun beberapa gambar atau membuat wadah atau volume, jangan khawatir: akan dipertahankan.

Setelah kami yakin paket yang diinstal sebelumnya dihapus dari sistem kami, kami dapat menambahkan Docker-CE Repositori ke sumber perangkat lunak distribusi kami, sehingga kami dapat tetap up to date dengan rilis di masa mendatang. Hal pertama yang harus kami lakukan adalah mengunduh Docker-CE.repo mengajukan:

$ curl -o https: // download.buruh pelabuhan.com/linux/fedora/docker-CE.repo 

Jika kami membuka file dengan editor teks favorit kami, kami dapat melihat bahwa bagian relatif Docker-CE-Stabil ditandai sebagai diaktifkan:

[Docker-CE-Stable] Name = Docker CE Stable-$ Basearch BaseUrl = https: // unduh.buruh pelabuhan.com/linux/fedora/$ releasever/$ basearch/stabil diaktifkan = 1 gpgcheck = 1 gpgkey = https: // unduh.buruh pelabuhan.com/linux/fedora/gpg 

Saat DNF mem -parsing .repo file, $ Rilis Variabel diperluas, seperti namanya, ke versi rilis distribusi, dalam hal ini 32. Karena pada saat penulisan tidak ada repositori Docker-CE secara eksplisit yang didedikasikan untuk Fedora 32, kita harus mengganti variabel ini dengan nilai statis, 31, rilis fedora sebelumnya. Kita dapat dengan mudah melakukan perubahan menggunakan sed memerintah:

# Pastikan untuk menggunakan kutipan tunggal! $ sed -i 's/$ rilis/31/g' Docker -CE.repo 

Dengan perintah di atas, kami menggantikan setiap kejadian $ Rilis di file dengan 31. Agar perintah dapat bekerja dengan benar, pola substitusi harus dilampirkan dalam kutipan tunggal seperti yang kami lakukan di atas (atau $ karakter harus diloloskan).

Seperti yang Anda perhatikan, hanya stabil Cabang repositori diaktifkan secara default (diaktifkan = 1). Saya sarankan Anda untuk membiarkannya seperti ini, kecuali jika Anda memiliki beberapa persyaratan spesifik.

Untuk membuat DNF menggunakan repositori Docker-CE, kita harus memindahkan .repo file ke /etc/yum.repo.D direktori:

$ sudo MV Docker-CE.repo /etc /yum.repo.D/ 

Pada titik ini kita dapat mengeluarkan perintah berikut untuk menginstal paket Docker-CE yang kita butuhkan:

$ sudo dnf menginstal docker-pe docker-ce-cli containerd.IO Docker CE Stable - x86_64 17 kb/s | 8.Dependensi 9 kb 00:00 diselesaikan. ==================================================== ==================================================== =============================== Paket Versi Arsitektur Repositori Ukuran ================ ==================================================== ==================================================== ================ Menginstal: Containerd.IO x86_64 1.2.13-3.1.FC31 Docker-CE-Stable 23 M Docker-CE X86_64 3:19.03.8-3.FC31 Docker-CE-Stable 23 M Docker-CE-CLI X86_64 1:19.03.8-3.FC31 Docker-CE-Stable 39 m Memasang Dependensi: Container-Selinux Noarch 2: 2.132.0-1.Pembaruan FC32 48 K LIBCGROUP X86_64 0.42.2-1.FC32 Fedora 68 K Ringkasan Transaksi ============================================== ==================================================== ===================================== Instal 5 Paket Total Ukuran Unduh: 85 m Ukuran Terpasang: 363 m Apakah ini ok [y/n]: 

Konfirmasikan instalasi untuk melanjutkan. Anda juga akan diminta untuk menerima kunci GPG repositori yang baru diinstal.

Mulailah Daemon Docker

Tidak masalah jika kami menginstal Docker-CE dari repositori khusus atau Moby-Engine, Setelah paket diinstal, untuk benar -benar bekerja dengan wadah, kita perlu memulai buruh pelabuhan daemon, dan secara opsional membuat sehingga secara otomatis diluncurkan saat boot. Untuk melakukan kedua operasi, kami dapat menggunakan Systemctl Perintah dan jalankan:

$ sudo systemctl enable - -now docker 

Pada titik ini kami memiliki Docker-CE atau Moby-Engine yang dipasang di sistem kami, dan daemon berjalan. Namun ada beberapa penyesuaian yang perlu kami lakukan agar Docker bekerja dengan benar pada distribusi kami.

Aktifkan kompatibilitas ke belakang untuk cgroup

Sejak Fedora 31, distribusi yang disponsori oleh Red Hat telah beralih ke Cgroup v2 (Grup Kontrol) Secara default. Cgroup adalah mekanisme yang dimasukkan ke dalam kernel Linux, digunakan untuk mengatur proses secara hierarkis dan mendistribusikan sumber daya yang sesuai. Docker belum mendukung versinya 2 dari cgroup, oleh karena itu kita harus menonaktifkannya. Untuk melakukannya, kita harus melewati Systemd.Unified_cgroup_hierarchy = 0 parameter ke kernel saat boot. Dengan hak istimewa administratif membuka /etc/default/grub mengajukan. Itu harus memiliki konten yang mirip dengan ini:

Grub_timeout = 5 grub_distributor = "$ (Sed's, rilis .*$ ,, G ' /etc /System-Release) "grub_default = saved grub_disable_submenu = true grub_terminal_output =" konsol "grub_cmdline_linux =" rhgb "grub_disable_recovery =" true "grub_enable_blscfg = 

Dalam Grub_cmdline_linux Baris, kita hanya perlu menambahkan parameter yang kita sebutkan di atas, sehingga terlihat seperti ini:

Grub_cmdline_linux = "rhgb sunyi systemd.Unified_cgroup_hierarchy = 0 " 

Setelah selesai, simpan file yang dimodifikasi dan membangun kembali konfigurasi grub:

$ sudo grub2 -mkconfig -o/boot/grub2/grub.CFG 

Untuk membuat perubahan efektif, kita perlu me -reboot mesin.



Perbaiki DNS tidak berfungsi di dalam Docker

Sekarang mari kita coba menjalankan wadah yang sangat sederhana berdasarkan pejabat BusyBox gambar. Kami menggunakannya untuk menjalankan yang sangat sederhana ping perintah di www.Google.com. Inilah hasilnya:

sudo docker run --rm -it Busybox ping -c 3 www.Google.com ping: alamat buruk 'www.Google.com ' 

Karena Anda dapat melihat kesalahan dihasilkan. Itu ping perintah mengeluh tentang www.Google.com menjadi alamat yang buruk, tetapi ini sebenarnya terjadi karena resolusi DNS tidak berfungsi di dalam wadah. Mengapa ini terjadi? Saat Docker berjalan, ia perlu melakukan beberapa penyesuaian firewall, dan menggunakan penyamaran IP. Perilaku ini diblokir oleh firewalld, manajer firewall default yang dipasang di fedora. Cara termudah untuk menyelesaikan masalah adalah dengan menambahkan secara eksplisit Docker0 antarmuka ke tepercaya zona firewall. Kita bisa melakukannya melalui Firewall-CMD kegunaan:

$ sudo firewall-cmd --permanent --zone = tepercaya --add-interface = docker0 && sudo firewall-cmd --eload 

Pada titik ini, jika kita mencoba lagi ping Perintah melalui wadah berbasis BusyBox, itu harus berfungsi dengan benar:

$ sudo docker run --rm -it sibuk ping -c 3 www.Google.com ping www.Google.com (216.58.198.36): 56 byte data 64 byte dari 216.58.198.36: seq = 0 ttl = 51 waktu = 31.559 MS 64 byte dari 216.58.198.36: seq = 1 ttl = 51 waktu = 30.417 MS 64 byte dari 216.58.198.36: seq = 2 ttl = 51 waktu = 30.154 ms --- www.Google.Statistik com ping --- 3 paket yang ditransmisikan, 3 paket diterima, 0% Paket kehilangan perjalanan pulang-pergi/rata-rata/maks = 30.154/30.710/31.559 ms 

Kesimpulan

Dalam tutorial ini kami mempelajari perbedaan antara Moby-Engine Dan Docker-CE Dan kami belajar cara menginstalnya di Fedora 32. Kami juga melihat cara menerapkan dua perbaikan yang diperlukan untuk menjalankan Docker dengan benar pada distribusi. Setelah membaca artikel ini, semoga Anda harus memiliki pengaturan yang berfungsi.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Instal Docker di Almalinux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Menguasai loop skrip bash
  • Cara menginstal kubernet di semua distro linux
  • Ubuntu 20.04 Panduan
  • Pengantar Mesin Penyimpanan MySQL