Cara Memasang dan Mengkonfigurasi Enjin Docker-CE/Moby di Fedora 32
- 2079
- 457
- Chris Little I
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
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
- « Dayakan Adobe Flash untuk Google Chrome di Ubuntu 20.04 Focal Fossa
- Cara Memasang Mod_SSL pada RHEL 8 / CentOS 8 dengan HTTPD Apache Webserver »