Cara Memasang Docker CE di RHEL 8 / CentOS 8

Cara Memasang Docker CE di RHEL 8 / CentOS 8

Pembebasan terbaru RHEL 8 / CentOS 8. Red Hat telah membina alatnya sendiri, Buildah dan Podman, yang bertujuan untuk bersesuaian dengan imej docker yang sedia ada dan bekerja tanpa bergantung pada daemon, yang membolehkan penciptaan bekas sebagai pengguna biasa, tanpa memerlukan kebenaran khas (dengan beberapa batasan: e.g. Pada masa penulisan, masih tidak dapat memetakan pelabuhan hos ke bekas tanpa keistimewaan).

Sesetengah alat tertentu, bagaimanapun, masih hilang: setara dengan Docker-compose, contohnya belum wujud. Dalam tutorial ini, kita akan melihat cara memasang dan menjalankan docker asal CE pada RHEL8 dengan menggunakan repositori Docker rasmi untuk CentOS7.

Dalam tutorial ini anda akan belajar:

  • Cara Membolehkan Repositori Docker-CE di RHEL 8 / CentOS 8
  • Cara Memasang Docker dan Docker-Compose On Rhel 8 / CentOS 8


Docker dipasang di RHEL 8 / CentOS 8

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem RHEL 8 / CENTOS 8
Perisian Docker Versi 18.09.2
Yang lain Kebenaran untuk menjalankan arahan dengan keistimewaan root.
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

Apa itu Docker?

Docker adalah projek sumber terbuka yang membolehkan penciptaan dan pengedaran aplikasi di dalamnya bekas, yang merupakan persekitaran yang diseragamkan yang boleh direplikasi dengan mudah, secara bebas dari sistem tuan rumah. Semasa di Red Hat Enterprise Linux 7 Docker secara rasmi disokong, pada pembebasan baru sistem operasi sumber terbuka ini, ia telah digantikan oleh satu siri alat lain yang dibangunkan oleh Red Hat sendiri: Buildah dan Podman.

Dengan menggunakan repositori luaran, bagaimanapun, masih boleh memasang Docker CE (Edisi Komuniti). Dalam tutorial ini kita akan melihat cara memasang repositori ini; Perhatikan bagaimanapun, bahawa ia pada asalnya dimaksudkan untuk Centos 7 (klon rhel), dan versi komuniti Docker tidak mempunyai sokongan rasmi untuk Red Hat Enterprise Linux. Kerana ini, isu ada - kita membincangkannya di bawah.

Menambah repositori luaran

Oleh kerana Docker tidak tersedia di Rhel 8 / Centos 8, kita perlu menambah repositori luaran untuk mendapatkan perisian. Dalam kes ini, kami akan menggunakan repositori Centos Centos rasmi: Ini adalah, pada masa penulisan, satu -satunya cara untuk memasang Docker CE pada RHEL 8 / CentOS 8.



The DNF Config-Manager utiliti marilah kita, antara perkara lain, mudah membolehkan atau melumpuhkan repositori dalam pengedaran kita. Secara lalai, hanya AppStream dan Baseos Repositori didayakan pada RHEL8; kita perlu menambah dan membolehkan juga Docker-ce repo. Apa yang perlu kita lakukan untuk menyelesaikan tugas ini, adalah untuk menjalankan arahan berikut:

$ sudo dnf config-manager --add-repo = https: // muat turun.Docker.com/linux/centos/docker-ce.repo

Kami dapat mengesahkan bahawa repositori telah diaktifkan, dengan melihat output perintah berikut:

$ sudo dnf repolist -v

Perintah di atas akan mengembalikan maklumat terperinci mengenai semua repositori yang diaktifkan. Inilah yang harus anda lihat pada ketika ini:

Repo-id: Docker-Ce-Stable Repo-Name: Docker CE Stable-X86_64 Repo-revision: 1549905809 Repo-Updated: Mon 11 Feb 2019 06:23:29 PM CET Repo-PKGS: 30 Repo-Size: 618 m repo -baseurl: https: // muat turun.Docker.com/linux/centos/7/x86_64/stabil repo-expire: 172,800 saat (s) (terakhir: Isnin 18 Feb 2019 10:23:54 cet) Repo-filename:/etc/yum.repos.d/docker-ce.Repo-id: RHEL-8-untuk-X86_64-Appstream-RPMS Repo-Name: Red Hat Enterprise Linux 8 untuk x86_64-Appstream Beta (RPMS) REPO-REVISION: 1542158694 Repo-Updated: Wed 14 Nov 2018 02:24: 54 pagi CET repo-pkgs: 4,594 saiz repo: 4.9 g repo-baseurl: https: // cdn.topi merah.com/content/beta/rhel8/8/x86_64/appstream/OS repo-expire: 86,400 saat (s) (terakhir: Isnin 18 Feb 2019 10:23:55 pagi CET) Repo-Filename:/etc/yum.repos.d/redhat.Repo-id: RHEL-8-FOR-X86_64-BASASEOS-RPMS Repo-Name: Red Hat Enterprise Linux 8 untuk x86_64-Baseos Beta (RPMS) Repo-revisi: 1542158719 Repo-Updated: Wed 14 Nov 2018 02:25: 19 pagi CET repo-pkgs: 1,686 saiz repo: 925 m repo-baseurl: https: // cdn.topi merah.com/content/beta/rhel8/8/x86_64/baseos/os repo-expire: 86,400 saat (s) (terakhir: Isnin 18 Feb 2019 10:23:56 cet) Repo-filename:/etc/yum.repos.d/redhat.Repo Jumlah Pakej: 6,310 

Memasang Docker-CE

The Docker-ce-stabil Repositori kini didayakan pada sistem kami. Repositori mengandungi beberapa versi Docker-ce pakej, untuk memaparkan semuanya, kita boleh menjalankan:

$ DNF Senarai Docker-CE --ShowDuplicates | sort -r docker -ce.x86_64 3:19.03.2-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:19.03.1-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:19.03.0-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.9-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.8-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.7-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.6-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.5-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.4-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.3-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.2-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.1-3.EL7 Docker-ce-Stable Docker-CE.x86_64 3:18.09.0-3.EL7 Docker-ce-Stable Docker-CE.x86_64 18.06.3.CE-3.EL7 Docker-ce-Stable Docker-CE.x86_64 18.06.2.CE-3.EL7 Docker-ce-Stable Docker-CE.x86_64 18.06.1.CE-3.EL7 Docker-ce-Stable Docker-CE.x86_64 18.06.0.CE-3.EL7 Docker-ce-Stable Docker-CE.x86_64 18.03.1.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 18.03.0.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.12.1.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.12.0.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.09.1.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.09.0.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.06.2.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.06.1.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.06.0.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.03.3.CE-1.EL7 Docker-ce-Stable Docker-CE.x86_64 17.03.2.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.03.1.CE-1.EL7.Centos Docker-Ce-Stable Docker-CE.x86_64 17.03.0.CE-1.EL7.Centos Docker-Ce-Stable 

Versi apa yang hendak dipasang? Nah, topi merah nampaknya menyekat pemasangan containerd.io > 1.2.0-3.EL7, yang merupakan pergantungan Docker-ce. Kerana ini, hanya menjalankan sudo dnf memasang docker-ce perintah, tidak akan berfungsi. Seperti yang akan kita lihat dalam satu minit, ia masih mungkin untuk menyelesaikan masalah ini; sekali Docker-ce Walau bagaimanapun, dipasang, masalah lain menjadi jelas: selagi Firewalld, Pengurus Firewall Sistem diaktifkan, Resolusi DNS Dalam bekas Docker tidak berfungsi.

Ini, sudah tentu masalah kritikal. Walau bagaimanapun, jika anda masih ingin meneruskan pemasangan, berikut adalah kaedah yang mungkin digunakan untuk mengelakkan masalah kebergantungan:

  • Pasang versi tertentu dari Docker-ce yang memerlukan versi yang boleh dipasang dari containerd.io pakej;
  • Memaksa pemasangan menyediakan --nobest pilihan
  • Pasang yang terkini yang ada containerd.io rpm secara manual;

Pasang versi tertentu Docker-Ce

Pada masa menulis versi Docker-ce yang dipasang tanpa masalah adalah:

  • Docker-ce-3: 18.09.1-3.EL7
  • Docker-ce-18.06.3.CE-3.EL7;
  • Docker-ce-17.12.1.CE-1.EL7.Centos

Untuk memasang versi tertentu, yang perlu kita lakukan ialah menyediakan nama pakej yang berkelayakan sepenuhnya, sebagai contoh:

$ sudo dnf memasang docker-ce-3: 18.09.1-3.EL7

Memaksa pemasangan Docker -CE dengan pilihan yang paling tidak terkawal

Biasanya, semasa memasang pakej, calon yang terbaik dipilih dari repositori. Dalam kes ini, sebagai contoh, pemasangan versi terkini Docker-ce dicuba (dan gagal). Dengan menggunakan --nobest pilihan, kita boleh mengubah tingkah laku ini supaya versi pertama dari Docker-ce Dengan kebergantungan yang memuaskan dipilih sebagai "sandaran", dalam kes ini 3:18.09.1-3.EL7.

$ sudo DNF Install-Depper-ce Dependencies tidak dapat diselesaikan. Masalah: Pakej Docker-ce-3: 19.03.2-3.EL7.x86_64 Memerlukan containerd.io> = 1.2.2-3, tetapi tidak ada penyedia yang boleh dipasang - tidak dapat memasang calon terbaik untuk pekerjaan - container pakej.io-1.2.2-3.3.EL7.x86_64 dikecualikan - container pakej.io-1.2.2-3.EL7.x86_64 dikecualikan - container pakej.io-1.2.4-3.1.EL7.x86_64 dikecualikan - container pakej.io-1.2.5-3.1.EL7.x86_64 dikecualikan - container pakej.io-1.2.6-3.3.EL7.x86_64 is excluded =============================================== ================================================= ================================================= ==== Pakej Pakej Repositori Versi Arch =========================================== ================================================= ================================================= ========= Pemasangan: Docker-CE x86_64 3:18.09.1-3.EL7 Docker-ce-stabil 19 m Memasang kebergantungan: Containerd.io x86_64 1.2.0-3.EL7 Docker-ce-stabil 22 m Docker-ce-cli x86_64 1:19.03.2-3.EL7 Docker-ce-stabil 39 m Container-Selinux Noarch 2: 2.94-1.git1e99f1d.Modul+EL8.0.0+4017+BBBA319F RHEL-8-FOR-X86_64-Appstream-RPMS 43 K TAR x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASASEOS-RPMS 838 K Libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASASEOS-RPMS 70 K PYTHON3-POLICOREUTILS NOARCH 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASASEOS-RPMS 2.2 m python3-libsemanage x86_64 2.8-5.EL8 RHEL-8-FOR-X86_64-baseos-rpms 127 K python3-setools x86_64 4.2.0-2.EL8 RHEL-8-FOR-X86_64-baseos-rpms 598 K checkpolicy x86_64 2.8-2.EL8 RHEL-8-FOR-X86_64-baseos-rpms 338 K python3-audit x86_64 3.0-0.10.20180831GIT0047A6C.EL8 RHEL-8-FOR-X86_64-baseos-rpms 85 K Policycoreutils-python-utils noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASASEOS-RPMS 228 K Pakej Melangkau dengan kebergantungan yang rosak: Docker-CE x86_64 3:19.03.2-3.El7 Docker-ce-stabil 24 m Ringkasan Transaksi ========================================================================================= ================================================= ================================================= ========== Pasang 12 Pakej Skip 1 Pakej Jumlah Saiz Muat Turun: 85 m Pasang Saiz: 351 m Adakah ini OK [Y/N]:

Pasang kontena terkini yang tersedia.pakej io secara manual

Sekiranya kita perlu memasang versi terkini Docker-ce, kita boleh memasang versi yang diperlukan containerd.io secara manual, dengan berlari:

$ sudo dnf memasang https: // muat turun.Docker.com/linux/centos/7/x86_64/stabil/pakej/kontena.io-1.2.6-3.3.EL7.x86_64.rpm

Setelah pakej dipasang, kami hanya dapat memasang yang terkini Docker-ce:

$ sudo DNF Pasang kebergantungan dock-ce diselesaikan. ================================================= ================================================= ================================================= = Pakej Repositori Versi Pakej =============================================== ================================================= ================================================= ======= Memasang: Docker-CE x86_64 3:19.03.2-3.EL7 Docker-ce-stabil 24 m Memasang dependensi: Docker-ce-cli x86_64 1:19.03.2-3.EL7 Docker-ce-stabil 39 m tar x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASASEOS-RPMS 838 K Libcgroup x86_64 0.41-19.el8 rhel-8-for-x86_64-baseos-rpms 70 k Transaction Summary ================================== ================================================= ================================================= ================= Pasang 4 Pakej Jumlah Saiz Muat Turun: 65 m Pasang Saiz: 275 m Adakah ini OK [Y/N]: 

Pilihan ini kurang mudah sejak containerd.io pakej tidak dipasang sebagai kebergantungan Docker-ce, oleh itu ia tidak akan dikeluarkan secara automatik apabila yang terakhir dipasang dari sistem.

Apa sahaja kaedah yang kami gunakan untuk memasang Docker-ce, Seperti yang dikatakan sebelum ini, untuk membuat Resolusi DNS Bekerja di dalam bekas Docker, kita mesti melumpuhkan Firewalld (reboot sistem mungkin juga diperlukan):

$ sudo systemctl melumpuhkan firewalld


Mulakan dan aktifkan daemon docker

Sekali Docker-ce dipasang, kita mesti memulakan dan membolehkan daemon docker, sehingga ia juga akan dilancarkan secara automatik di boot. Perintah yang perlu kita jalankan adalah seperti berikut:

$ sudo systemctl enable -now docker

Pada ketika ini, kita dapat mengesahkan bahawa daemon aktif dengan menjalankan:

$ Systemctl IS-Active Docker Active 

Begitu juga, kita boleh menyemak bahawa ia didayakan di boot, dengan menjalankan:

$ Systemctl IS-Enabled Docker Diaktifkan 

Memasang Docker-Compose

Docker Compose adalah pakej yang sangat berguna yang membolehkan kita menguruskan aplikasi multi-kontainer, seperti contohnya berdasarkan timbunan lampu, di mana setiap bahagian persekitaran (PHP, Apache, Mariadb) disediakan oleh bekas yang berdedikasi (jika anda berminat Dalam subjek, lihat tutorial kami mengenai membuat timbunan lampu berasaskan Docker). Pakej ini tidak tersedia di RHEL8, atau tidak setaraf untuk digunakan dengan alat RHEL. Walau bagaimanapun, mungkin untuk memasangnya dengan banyak cara: terus membaca dan tentukan apa yang sesuai dengan anda.

Pemasangan global

Cara kita harus memasang Docker-compose berbeza bergantung pada sama ada kita mahu memasangnya secara global atau hanya untuk satu pengguna. Pada masa penulisan, satu -satunya cara untuk memasangnya secara global ialah memuat turun binari dari halaman GitHub projek:

$ curl -l "https: // github.com/docker/compose/releases/muat turun/1.23.2/docker-compose-$ (uname -s)-$ (uname -m) "-o dock-compose

Setelah binari dimuat turun, kami memasukinya /usr/tempatan/bin Dan kami menjadikannya boleh dilaksanakan:

$ sudo mv docker-compose/usr/local/bin && sudo chmod +x/usr/local/bin/docker-compose

The /usr/tempatan hierarki tidak dipilih secara rawak. Struktur direktori ini dibuat untuk digunakan untuk fail yang dipasang oleh pentadbir tempatan secara manual (untuk perisian yang disusun dari sumber, sebagai contoh), untuk memastikan pemisahan dari perisian yang dipasang dengan Pengurus Pakej Sistem.

Walaupun ada kemungkinan pengguna biasa menjalankan arahan berkaitan docker jika dia adalah sebahagian daripada Docker kumpulan (kumpulan itu dibuat secara automatik apabila kita memasang docker-ce), secara lalai mereka mesti dilaksanakan dengan keistimewaan root atas alasan keselamatan. Apabila kita perlu melakukan yang terakhir, sejak /usr/tempatan/bin Direktori tidak berada di pengguna root Jalan, Kami sama ada perlu memanggil binari yang menyatakan lokasinya atau menambah /usr/tempatan/bin kepada Jalan sendiri. Pilihan pertama adalah yang saya cadangkan dalam kes ini.

Pemasangan per-pengguna

Sekiranya pengguna kami adalah sebahagian daripada Docker kumpulan, dan dengan itu dibenarkan untuk menjalankan arahan Docker, dan sejak Docker-compose boleh didapati sebagai pakej python, kita juga boleh memasangnya menggunakan Pip, pengurus pakej python. Pertama, pastikan Pip sendiri dipasang:

$ sudo dnf memasang python3-pip

Untuk mendapatkan Docker-Compose kami berjalan:

$ pip3.6 Pasang Docker-Compose-Pengguna


Sila ambil perhatian bahawa walaupun mungkin untuk menjalankan PIP sebagai akar untuk memasang pakej secara global, ini tidak disyorkan dan sangat tidak digalakkan.

Menguji Docker

Kami memasang Docker dan Docker-Compose, kini untuk memeriksa bahawa semuanya berfungsi seperti yang diharapkan, kami boleh cuba membina imej dan menjalankan bekas: dalam hal ini kami akan menggunakan rasmi httpd satu. Apa yang perlu kita lakukan ialah melancarkan arahan berikut:

Sudo Docker Run - -rm --name = linuxconfig -test -p 80:80 httpd

Sejak httpd Imej tidak wujud secara tempatan ia akan diambil dan dibina secara automatik. Akhirnya, bekas berdasarkannya akan dilancarkan di latar depan (ia akan dikeluarkan secara automatik apabila dihentikan). Kita sepatutnya dapat melihat Ianya berfungsi! Mesej semasa kami sampai ke IP mesin kami melalui penyemak imbas.

Kesimpulan

Red Hat Enterprise Linux 8 tidak menyokong Docker: Pada pengedaran ini ia telah digantikan oleh alat Red Hat sendiri seperti Buildah dan Podman, yang serasi dengan Docker tetapi tidak memerlukan seni bina pelayan/klien untuk dijalankan. Menggunakan alat asli, di mana mungkin, selalu menjadi cara yang disyorkan untuk pergi, tetapi atas alasan atau yang lain, anda mungkin masih ingin memasang docker asal. Dalam tutorial ini, kita melihat bagaimana mungkin untuk dipasang Docker CE pada RHEL8, dengan menggunakan repositori Docker rasmi untuk CentOS7, yang merupakan klon serasi 100%.

Ini bukan penyelesaian yang ideal, dan seperti yang kita lihat, pada masa ini, beberapa penyelesaian diperlukan untuk membuat kerja docker pada rhel8. Sekiranya beberapa isu baru timbul, atau penyelesaian yang lebih baik kepada masalah yang disebutkan di atas ditemui, artikel ini akan dikemas kini dengan sewajarnya. Tinggal.

Tutorial Linux Berkaitan:

  • Cara membuat timbunan lampu berasaskan Docker menggunakan Docker pada ..
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pasang Docker di Almalinux
  • Cara menyambung ke bekas docker melalui ssh
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Cara memasang kubernet pada semua distro linux
  • Cara Memasang Debian pada bekas Luks yang ada
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Memasang dan Mengkonfigurasi Enjin Docker-CE/Moby di Fedora ..
  • Menguasai Gelung Skrip Bash