Cara Memasang dan Mengkonfigurasi Enjin Docker-CE/Moby di Fedora 32

Cara Memasang dan Mengkonfigurasi Enjin Docker-CE/Moby di Fedora 32

Walaupun Red Hat telah berkembang Podman dan Buildah, Alatnya sendiri untuk bekerja dengan bekas, yang datang dengan beberapa kelebihan penting seperti seni bina daemon, anda mungkin mahu terus menggunakan perisian Docker asal di Fedora. Dalam tutorial ini, kami akan meneroka pilihan yang kami ada pada pelepasan terkini pengedaran untuk berbuat demikian, dan akan melihat cara menerapkan perbaikan yang diperlukan untuk Docker berfungsi dengan betul.

Dalam tutorial ini anda akan belajar:

  • Cara memasang enjin moby
  • Cara memasang docker-ce
  • Cara Memohon Penyelesaian yang Diperlukan Untuk Membuat Docker dijalankan dengan betul di Fedora 32


Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Fedora 32
Perisian Tidak ada perisian khusus yang diperlukan untuk mengikuti tutorial ini
Yang lain Kebenaran akar untuk melaksanakan tugas pentadbiran
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Moby-Engine vs Docker-CE

Terdapat dua cara kita boleh mendapatkan Docker di Fedora 32: kita boleh memasang pakej "docker" dari repositori pengedaran rasmi, atau menambah Docker-ce dan pasang pakej yang diperlukan dari sana. Sekiranya kita memilih pilihan pertama, Moby-enjin pakej akan dipasang pada pengedaran kami dan bukannya sebenarnya Docker pembebasan. Jika kita memilih yang kedua, kita akan memperoleh pembebasan terkini edisi komuniti "Rasmi" Docker-enjin.

Apakah perbezaan antara keduanya? "Moby" adalah projek sumber terbuka "hulu" yang dibuat oleh Docker untuk mengedarkan dan membahagikan asasnya ke dalam pelbagai komponen. Perisian yang kami peroleh memasang Moby-enjin terus dari repositori fedora rasmi dibungkus oleh pengedaran di dasar projek upsteam ini, sementara Docker-ce (dan juga Docker-ee - Edisi Enterprise) adalah produk yang dibuat oleh Docker projek di pangkalan yang sama. Kedua -duanya dibebaskan di bawah lesen sumber terbuka dan tersedia secara bebas.

Dalam tutorial ini kita akan melihat bagaimana untuk melaksanakan pemasangan Docker-ce atau Moby-enjin, Dan kami juga akan melihat cara menerapkan perbaikan yang diperlukan untuk membuat Docker berfungsi dengan betul pada versi terkini Fedora.

Memasang Moby-enjin dari repositori rasmi

Memasang Moby-enjin Ini cara paling mudah dan paling cepat untuk bekerja dengan bekas menggunakan seni bina pelayan klien Docker pada pengedaran. Yang harus kita lakukan hanyalah menggunakan DNF, Pengurus Pakej Fedora, dan jalankan arahan berikut:

$ sudo dnf pemasangan docker metadata terakhir metadata Periksa: 1:38:14 lalu di Sun 03 Mei 2020 02:22:22 PM CEST. Ketergantungan diselesaikan. ================================================= ============================ Pakej Pakej Arch Versi Repo Size ================== ================================================= ============== Memasang: Moby-Engine x86_64 19.03.8-1.CE.Gitafacb8b.FC32 Fedora 51 m Memasang Ketergantungan: Container-Selinux Noarch 2: 2.132.0-1.Kemas kini FC32 48 K Containerd x86_64 1.3.3-1.Kemas kini 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 kebergantungan lemah: CRIU X86_64 3.13-5.fc32 fedora 492 k Transaction Summary ============================================ ================================= Pasang 7 Pakej Jumlah Saiz Muat turun: 86 m Pasang Saiz: 314 m Adakah ini ok [y/n]: 


Seperti yang anda lihat, walaupun kami menentukan Docker sebagai pakej, Moby-enjin versi 19.03.8-1.CE.Gitafacb8b.FC32 sebenarnya akan dipasang, bersama -sama dengan kebergantungannya.

Memasang Docker-CE

Edisi Komuniti Docker (CE) adalah versi "rasmi" Docker, yang, seperti yang kita katakan sebelum ini, berdasarkan projek MOBY. Memasang di Fedora 32 memerlukan lebih banyak langkah. Jika anda sebelum ini memasang versi Docker yang tersedia dari Repositori Fedora (Moby-enjin), pastikan anda menyahpasangnya dengan menjalankan arahan berikut:

$ sudo dnf autoremove docker 

Sekiranya anda sebelum ini membina beberapa imej atau mencipta bekas atau jilid, jangan risau: yang akan dipelihara.

Sebaik sahaja kami pasti pakej yang dipasang sebelum ini dikeluarkan dari sistem kami, kami boleh menambah Docker-ce Repositori ke sumber perisian pengedaran kami, jadi kami dapat dikemas kini dengan siaran masa depan. Perkara pertama yang perlu kita lakukan ialah memuat turun Docker-ce.repo Fail:

$ curl -o https: // muat turun.Docker.com/linux/fedora/docker-ce.repo 

Sekiranya kita membuka fail dengan editor teks kegemaran kita, kita dapat melihat bahawa bahagiannya relatif terhadap Docker-ce-stabil ditandakan sebagai didayakan:

[docker-ce-stable] name = docker ce stabil-$ basearch baseurl = https: // muat turun.Docker.com/linux/fedora/$ releasever/$ basearch/stabil enabled = 1 gpgcheck = 1 gpgkey = https: // muat turun.Docker.com/linux/fedora/gpg 

Apabila DNF menghuraikan .repo fail, yang $ melegakan Pembolehubah diperluas, seperti namanya, kepada versi pelepasan pengedaran, dalam kes ini 32. Oleh kerana pada saat menulis tidak ada repositori docker-ce secara eksplisit khusus untuk fedora 32, kita harus menggantikan pembolehubah ini dengan nilai statik, 31, pembebasan fedora sebelumnya. Kita dapat dengan mudah melakukan perubahan dengan menggunakan sed Perintah:

# Pastikan anda menggunakan petikan tunggal! $ sed -I 's/$ releasever/31/g' docker -ce.repo 

Dengan arahan di atas kami menggantikan setiap kejadian $ melegakan dalam fail dengan 31. Untuk arahan berfungsi dengan betul corak penggantian mesti dilampirkan dalam petikan tunggal seperti yang kita lakukan di atas (atau $ watak mesti melarikan diri).

Seperti yang anda perhatikan, hanya stabil Cabang repositori diaktifkan secara lalai (didayakan = 1). Saya cadangkan anda meninggalkannya dengan cara ini, melainkan jika anda mempunyai beberapa keperluan khusus.

Untuk menjadikan DNF menggunakan repositori docker-ce, kita mesti memindahkan .repo fail ke /etc/yum.repos.d Direktori:

$ sudo mv docker-ce.repo /etc /yum.repos.d/ 

Pada ketika ini kita boleh mengeluarkan arahan berikut untuk memasang pakej Docker-CE yang kita perlukan:

$ sudo dnf memasang docker-ce docker-cle-cli containerd.io docker ce stabil - x86_64 17 kb/s | 8.9 kb 00:00 ketergantungan diselesaikan. ================================================= ================================================= ============================ Pakej Versi Senibina Versi Repositori =================== ================================================= ================================================= ============== Memasang: 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-stabil 23 m Docker-Cle-Cli x86_64 1:19.03.8-3.FC31 Docker-Ce-Stable 39 M Memasang Dependensi: Container-Selinux Noarch 2: 2.132.0-1.Kemas kini FC32 48 K Libcgroup x86_64 0.42.2-1.fc32 fedora 68 k Transaction Summary ============================================ ================================================= ================================= Pasang 5 Pakej Jumlah Saiz Muat turun: 85 m Pasang Saiz: 363 m Adakah ini ok [y/n]: 

Sahkan pemasangan untuk meneruskan. Anda juga akan diminta untuk menerima kunci GPG repositori yang baru dipasang.

Mulakan daemon Docker

Tidak kira jika kita memasang Docker-ce dari repositori yang berdedikasi atau Moby-enjin, Sebaik sahaja pakej dipasang, untuk benar -benar bekerja dengan bekas yang kita perlukan untuk memulakan Docker Daemon, dan secara pilihan membuat sehingga dilancarkan secara automatik di Boot. Untuk melaksanakan kedua -dua operasi kita boleh menggunakan Systemctl Perintah dan Jalankan:

$ sudo systemctl enable -now docker 

Pada ketika ini kami mempunyai Docker-CE atau Moby-Engine dipasang pada sistem kami, dan Daemon berjalan. Walau bagaimanapun terdapat beberapa pelarasan yang perlu kita lakukan untuk Docker berfungsi dengan betul pada pengedaran kami.

Dayakan keserasian ke belakang untuk cgroup

Sejak Fedora 31, pengedaran yang ditaja oleh Red Hat telah beralih ke cgroup v2 (Kumpulan kawalan) secara lalai. Cgroup adalah mekanisme yang dimasukkan ke dalam kernel Linux, digunakan untuk mengatur proses secara hierarki dan mengedarkan sumber dengan sewajarnya. Docker belum menyokong versi 2 dari kumpulan, oleh itu kita mesti melumpuhkannya. Untuk melakukannya, kita mesti lulus sistemd.Unified_cgroup_hierarky = 0 parameter ke kernel di boot. Dengan keistimewaan pentadbiran membuka /etc/lalai/grub fail. Ia sepatutnya mempunyai kandungan yang serupa dengan ini:

Grub_timeout = 5 grub_distributor = "$ (sed's, Release .*$ ,, g ' /etc /sistem-pelepasan) "grub_default = saved grub_disable_submenu = true grub_terminal_output =" konsol "grub_cmdline_linux =" rhgb sunyi "grub_disable_recovery =" true " 

Di dalam Grub_cmdline_linux garis, kita hanya perlu menambah parameter yang kita nyatakan di atas, supaya ia kelihatan seperti ini:

Grub_cmdline_linux = "Rhgb Sistem Tenang.bersatu_cgroup_hierarky = 0 " 

Setelah selesai, simpan fail yang diubahsuai dan membina semula konfigurasi grub:

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

Untuk membuat perubahan berkesan, kita perlu reboot mesin.



Betulkan DNS tidak berfungsi di dalam Docker

Mari kita cuba menjalankan bekas yang sangat mudah berdasarkan pegawai Busybox gambar. Kami menggunakannya untuk menjalankan sangat mudah ping perintah pada www.Google.com. Inilah hasilnya:

Sudo Docker Run - -rm -it Busybox Ping -c 3 www.Google.com ping: alamat buruk 'www.Google.com ' 

Seperti yang anda dapat lihat ralat dihasilkan. The ping Perintah mengadu mengenai www.Google.com menjadi alamat yang tidak baik, tetapi ini sebenarnya berlaku kerana resolusi DNS tidak berfungsi di dalam bekas. Kenapa ini berlaku? Semasa Docker berjalan, ia perlu melakukan pelarasan firewall, dan menggunakan IP Masquerading. Tingkah laku ini disekat oleh firewalld, pengurus firewall lalai dipasang di fedora. Cara paling mudah untuk menyelesaikan masalah adalah dengan jelas menambah Docker0 antara muka ke dipercayai Zon Firewall. Kita boleh melakukannya melalui Firewall-CMD Utiliti:

$ sudo firewall-cmd --permanent --Zone = dipercayai --Add-interface = docker0 && sudo firewall-cmd-reload 

Pada ketika ini, jika kita mencuba ping Perintah melalui bekas berasaskan BusyBox, ia harus berfungsi dengan betul:

$ sudo docker run - -rm -it busybox ping -c 3 www.Google.com ping www.Google.com (216.58.198.36): 56 bait data 64 bait dari 216.58.198.36: seq = 0 ttl = 51 masa = 31.559 ms 64 bait dari 216.58.198.36: seq = 1 ttl = 51 masa = 30.417 ms 64 bait dari 216.58.198.36: seq = 2 ttl = 51 masa = 30.154 ms --- www.Google.Statistik Ping Com --- 3 paket dihantar, 3 paket diterima, 0% Packet Loss Round-Trip Min/AVG/Max = 30.154/30.710/31.559 ms 

Kesimpulan

Dalam tutorial ini kita belajar perbezaan antara Moby-enjin dan Docker-ce Dan kami belajar cara memasangnya di Fedora 32. Kami juga melihat cara menerapkan dua perbaikan yang diperlukan untuk menjalankan Docker dengan betul pada pengedaran. Setelah membaca artikel ini, anda semestinya mempunyai persediaan kerja.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pasang Docker di Almalinux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Menguasai Gelung Skrip Bash
  • Cara memasang kubernet pada semua distro linux
  • Ubuntu 20.04 Panduan
  • Pengenalan kepada enjin penyimpanan MySQL