Cara Menginstal Docker CE di RHEL 8 / CENTOS 8

Cara Menginstal Docker CE di RHEL 8 / CENTOS 8

Rilis terbaru dari RHEL 8 / CentOS 8. Red Hat telah membangun alatnya sendiri, buildah Dan podman, yang bertujuan untuk kompatibel dengan gambar Docker yang ada dan bekerja tanpa mengandalkan daemon, memungkinkan pembuatan wadah sebagai pengguna normal, tanpa memerlukan izin khusus (dengan beberapa keterbatasan: e.G. Pada saat penulisan, masih tidak mungkin untuk memetakan port host ke wadah tanpa hak istimewa).

Namun, beberapa alat spesifik masih hilang: setara dengan Docker-Compose, misalnya belum ada. Dalam tutorial ini kita akan melihat cara menginstal dan menjalankan Docker CE asli di RHEL8 dengan menggunakan repositori Docker resmi untuk Centos7.

Dalam tutorial ini Anda akan belajar:

  • Cara Mengaktifkan Repositori Docker-CE di RHEL 8 / CENTOS 8
  • Cara menginstal docker dan compose docker pada rhel 8 / centos 8


Docker dipasang di Rhel 8 / Centos 8

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 Rhel 8 / Centos 8
Perangkat lunak Versi Docker 18.09.2
Lainnya Izin untuk menjalankan perintah dengan hak istimewa root.
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

Apa itu Docker?

Docker adalah proyek open source yang memungkinkan pembuatan dan distribusi aplikasi di dalamnya wadah, yang merupakan lingkungan standar yang dapat dengan mudah direplikasi, secara independen dari sistem host. Sementara di Red Hat Enterprise Linux 7 Docker secara resmi didukung, pada rilis baru sistem operasi open source ini, telah digantikan oleh serangkaian alat lain yang dikembangkan oleh Red Hat sendiri: buildah Dan podman.

Namun, dengan menggunakan repositori eksternal, masih mungkin untuk menginstal Docker CE (Edisi Komunitas). Dalam tutorial ini kita akan melihat cara menginstal repositori ini; Namun perhatikan bahwa itu semula dimaksudkan Centos 7 (A Rhel Clone), dan versi komunitas Docker tidak memiliki dukungan resmi untuk Red Hat Enterprise Linux. Karena itu, ada masalah - kami membahasnya di bawah ini.

Menambahkan repositori eksternal

Karena Docker tidak tersedia di RHEL 8 / CentOS 8, kita perlu menambahkan repositori eksternal untuk mendapatkan perangkat lunak. Dalam hal ini kami akan menggunakan repositori Docker Ce Centos resmi: ini adalah, pada saat penulisan, satu -satunya cara untuk memasang Docker CE di RHEL 8 / CentOS 8.



Itu DNF Config-Manager Utilitas Mari kita, di antara yang lain, dengan mudah mengaktifkan atau menonaktifkan repositori dalam distribusi kami. Secara default, hanya appstream Dan baseos Repositori diaktifkan di Rhel8; kita perlu menambah dan mengaktifkan juga Docker-CE repo. Yang perlu kita lakukan untuk menyelesaikan tugas ini, adalah menjalankan perintah berikut:

$ sudo dnf config-manager --add-repo = https: // download.buruh pelabuhan.com/linux/centos/docker-CE.repo

Kami dapat memverifikasi bahwa repositori telah diaktifkan, dengan melihat output dari perintah berikut:

$ sudo dnf repolist -v

Perintah di atas akan mengembalikan informasi terperinci tentang semua repositori yang diaktifkan. Inilah yang harus Anda lihat pada titik ini:

REPO-ID: Docker-CE-Stable-NAME REPO: Docker CE Stable-x86_64 Repo-Revision: 1549905809 Repo-diperbarui: Senin 11 Feb 2019 06:23:29 PM CET REPO-PKGS: 30-ukuran: 618 M REPO -BaseUrl: https: // download.buruh pelabuhan.com/linux/centos/7/x86_64/stabil Repo-Expire: 172.800 detik (terakhir: Last: Mon 18 Feb 2019 10:23:54 CET) REPO-Filename:/etc/yum.repo.D/Docker-CE.repo repo-id: rhel-8-for-x86_64-appstream-rpms Repo-name: Red Hat Enterprise Linux 8 untuk x86_64-AppStream Beta (RPMS) REPO-Revision: 1542158694 REPO-Dibeli: Rabu 14 Nov 2018 02:24: 54 AM CET REPO-PKGS: 4.594 Ukuran Repo: 4.9 G REPO-BASEURL: https: // cdn.topi merah.com/content/beta/rhel8/8/x86_64/appstream/os repo-expire: 86.400 detik (terakhir: Mon 18 Feb 2019 10:23:55 CET) repo-filename:/etc/yum.repo.d/redhat.repo repo-id: rhel-8-for-x86_64-baseos-rpms Repo-name: Red Hat Enterprise Linux 8 untuk x86_64-baseos beta (rpms) repo-revisi: 1542158719 Repo-Dibebaskan: Rabu 14 Nov 2018 02:25: 19:00 CET REPO-PKGS: 1.686 Ukuran REPO: 925 M REPO-BASEURL: https: // cdn.topi merah.com/content/beta/rhel8/8/x86_64/baseos/os Repo-Expire: 86.400 detik (terakhir: Mon 18 Feb 2019 10:23:56 CET) REPO-filename:/etc/yum.repo.d/redhat.Paket Total Repo: 6.310 

Menginstal Docker-CE

Itu Docker-CE-Stabil Repositori sekarang diaktifkan di sistem kami. Repositori berisi beberapa versi Docker-CE paket, untuk menampilkan semuanya, kita dapat menjalankan:

$ DNF DAFTAR 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-Stabil 

Versi apa yang harus diinstal? Nah, topi merah tampaknya entah bagaimana memblokir pemasangan containerd.io > 1.2.0-3.EL7, yang merupakan ketergantungan Docker-CE. Karena itu, cukup menjalankan Sudo DNF menginstal Docker-CE perintah, tidak akan berfungsi. Seperti yang akan kita lihat dalam satu menit, masih ada kemungkinan untuk mengatasi masalah ini; sekali Docker-CE Namun, terpasang, masalah lain menjadi jelas: selama Firewalld, Manajer Firewall Sistem diaktifkan, Resolusi DNS di dalam wadah Docker tidak berfungsi.

Ini, tentu saja masalah kritis. Namun, jika Anda masih ingin melanjutkan dengan instalasi, berikut adalah metode yang mungkin digunakan untuk menghindari masalah dependensi:

  • Instal versi tertentu Docker-CE yang membutuhkan versi yang dapat diinstal dari containerd.io kemasan;
  • Memaksa instalasi yang menyediakan --Nobest pilihan
  • Instal yang terbaru tersedia containerd.io RPM secara manual;

Instal versi spesifik Docker-CE

Pada saat menulis versi Docker-CE yang diinstal 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 menginstal versi tertentu, yang harus kami lakukan adalah memberikan nama paket yang sepenuhnya memenuhi syarat, misalnya:

$ sudo DNF menginstal Docker-CE-3: 18.09.1-3.EL7

Paksa pemasangan Docker -CE dengan opsi -nobest

Biasanya, saat memasang paket, kandidat terbaik yang tersedia dipilih dari repositori. Dalam hal ini, misalnya, instalasi versi terbaru Docker-CE dicoba (dan gagal). Dengan menggunakan --Nobest opsi, kita dapat mengubah perilaku ini sehingga versi pertama Docker-CE Dengan ketergantungan yang memuaskan dipilih sebagai "fallback", dalam hal ini 3:18.09.1-3.EL7.

$ sudo dnf instal-nobest docker-ce dependencies diselesaikan. Masalah: Paket Docker-CE-3: 19.03.2-3.EL7.x86_64 membutuhkan containerd.IO> = 1.2.2-3, tetapi tidak ada penyedia yang dapat diinstal - tidak dapat menginstal kandidat terbaik untuk pekerjaan itu - paket containerd.IO-1.2.2-3.3.EL7.x86_64 dikecualikan - Paket Containerd.IO-1.2.2-3.EL7.x86_64 dikecualikan - Paket Containerd.IO-1.2.4-3.1.EL7.x86_64 dikecualikan - Paket Containerd.IO-1.2.5-3.1.EL7.x86_64 dikecualikan - Paket Containerd.IO-1.2.6-3.3.EL7.x86_64 dikecualikan ================================================ ==================================================== ==================================================== ==== Paket Versi Arch Repositori Ukuran =========================================== ==================================================== ==================================================== ========== Instaling: Docker-CE X86_64 3:18.09.1-3.EL7 Docker-CE-Stable 19 m Instalasi Ketergantungan: Containerd.IO x86_64 1.2.0-3.EL7 Docker-CE-Stable 22 M Docker-CE-CLI X86_64 1:19.03.2-3.El7 Docker-CE-Stable 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-baseos-rpms 838 k libcgroup x86_64 0.41-19.el8 rhel-8-for-x86_64-baseos-rpms 70 k python3-policycoreutils noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-baseos-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-baseos-rpms 228 k Paket lompatan dengan dependensi rusak: Docker-CE x86_64 3:19.03.2-3.EL7 Docker-CE-Stable 24 M Ringkasan Transaksi ========================================= ==================================================== ==================================================== =========== Instal 12 Paket Lewati 1 Paket Total Ukuran Unduh: 85 m Ukuran Terinstal: 351 m Apakah ini OK [y/n]:

Instal containerd terbaru yang tersedia.Paket io secara manual

Jika kita sangat perlu menginstal versi terbaru Docker-CE, Kami dapat menginstal versi yang diperlukan containerd.io Secara manual, dengan menjalankan:

$ sudo dnf menginstal https: // download.buruh pelabuhan.com/linux/centos/7/x86_64/stabil/paket/containerd.IO-1.2.6-3.3.EL7.x86_64.RPM

Setelah paket diinstal, kami dapat menginstal yang terbaru Docker-CE:

$ sudo dnf menginstal dependensi docker-ce diselesaikan. ==================================================== ==================================================== ==================================================== = Paket Versi Arch Ukuran Repositori =============================================== ==================================================== ==================================================== ======= Menginstal: Docker-CE X86_64 3:19.03.2-3.EL7 Docker-CE-Stable 24 m Memasang Dependensi: Docker-CE-CLI X86_64 1:19.03.2-3.EL7 Docker-CE-Stable 39 M TAR X86_64 2: 1.30-4.el8 rhel-8-for-x86_64-baseos-rpms 838 k libcgroup x86_64 0.41-19.el8 rhel-8-for-x86_64-baseos-rpms 70 k ringkasan transaksi ===================================== ==================================================== ==================================================== ================= Instal 4 Paket Total Ukuran Unduh: 65 m Ukuran Terinstal: 275 m Apakah ini OK [y/n]: 

Opsi ini kurang nyaman karena containerd.io Paket tidak diinstal sebagai ketergantungan Docker-CE, Oleh karena itu tidak akan dihapus secara otomatis ketika yang terakhir dihapus dari sistem.

Metode apa pun yang kami gunakan untuk menginstal Docker-CE, Seperti yang dikatakan sebelumnya, untuk membuat Resolusi DNS Bekerja di dalam wadah Docker, kita harus menonaktifkan firewalld (reboot sistem mungkin juga diperlukan):

$ sudo systemctl nonaktifkan firewalld


Mulai dan Aktifkan Daemon Docker

Sekali Docker-CE diinstal, kita harus memulai dan mengaktifkan Docker Daemon, sehingga juga akan diluncurkan secara otomatis saat boot. Perintah yang perlu kita jalankan adalah sebagai berikut:

$ sudo systemctl enable - -now docker

Pada titik ini, kami dapat mengonfirmasi bahwa daemon aktif dengan menjalankan:

$ Systemctl IS-AKTIF Docker Active 

Demikian pula, kita dapat memeriksa apakah diaktifkan saat boot, dengan menjalankan:

$ Systemctl IS-Enabled Docker Diaktifkan 

Menginstal Docker-Compose

Docker Compose adalah paket yang sangat berguna yang memungkinkan kami mengelola aplikasi multi-kontainer, seperti misalnya yang berdasarkan tumpukan lampu, di mana setiap bagian lingkungan (PHP, Apache, MariaDB) disediakan oleh wadah khusus (jika Anda tertarik Dalam subjek, lihat tutorial kami tentang membuat tumpukan lampu berbasis Docker). Paket ini tidak tersedia di RHEL8, atau yang setara ada untuk digunakan dengan alat RHEL. Namun, mungkin untuk menginstalnya dalam banyak hal: terus membaca dan memutuskan apa yang paling cocok untuk Anda.

Instalasi Global

Cara kita harus menginstal Docker-Compose bervariasi tergantung pada apakah kami ingin menginstalnya secara global atau hanya untuk satu pengguna. Pada saat penulisan, satu -satunya cara untuk menginstalnya secara global adalah dengan mengunduh biner dari halaman GitHub proyek:

$ curl -l "https: // github.com/docker/compose/rilis/download/1.23.2/Docker-Compose-$ (uname -s)-$ (uname -m) "-o Docker-compose

Setelah biner diunduh, kami memindahkannya /usr/lokal/bin Dan kami membuatnya dapat dieksekusi:

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

Itu /usr/lokal Hirarki tidak dipilih secara acak. Struktur direktori ini dibuat untuk digunakan untuk file yang diinstal oleh administrator lokal secara manual (untuk perangkat lunak yang dikumpulkan dari sumber, misalnya), untuk memastikan pemisahan dari perangkat lunak yang diinstal dengan System Package Manager.

Meskipun mungkin bagi pengguna normal untuk menjalankan perintah terkait Docker jika dia adalah bagian dari buruh pelabuhan grup (grup secara otomatis dibuat saat kami menginstal Docker-CE), secara default mereka harus dieksekusi dengan hak istimewa root untuk alasan keamanan. Ketika kita perlu melakukan yang terakhir, karena /usr/lokal/bin Direktori tidak ada dalam pengguna root JALUR, kita perlu memanggil biner yang menentukan lokasinya atau menambah /usr/lokal/bin ke JALUR diri. Opsi pertama adalah yang saya rekomendasikan dalam kasus ini.

Instalasi per-pengguna

Jika pengguna kami adalah bagian dari buruh pelabuhan grup, dan dengan demikian diizinkan untuk menjalankan perintah Docker, dan karena itu Docker-Compose tersedia sebagai paket python, kami juga dapat menginstalnya menggunakannya Pip, Manajer Paket Python. Pertama, pastikan Pip itu sendiri dipasang:

$ sudo dnf menginstal python3-pip

Untuk mendapatkan komposisi Docker kami menjalankan:

$ PIP3.6 Instal Docker-Compose-Pengguna


Harap perhatikan bahwa meskipun mungkin untuk menjalankan PIP sebagai root untuk menginstal paket secara global, ini tidak disarankan dan sangat tidak dianjurkan.

Pengujian Docker

Kami menginstal Docker dan Docker-Compose, sekarang untuk memeriksa apakah semuanya berfungsi seperti yang diharapkan, kami dapat mencoba membangun gambar dan menjalankan wadah: dalam hal ini kami akan menggunakan resmi httpd satu. Yang harus kita lakukan adalah meluncurkan perintah berikut:

sudo docker run --rm --name = linuxconfig -test -p 80:80 httpd

Sejak httpd Gambar tidak ada secara lokal itu akan secara otomatis diambil dan dibangun. Akhirnya, sebuah wadah berdasarkan itu akan diluncurkan di latar depan (akan secara otomatis dihapus saat dihentikan). Kita harus bisa melihat Berhasil! Pesan Saat kami mencapai IP mesin kami melalui browser.

Kesimpulan

Red Hat Enterprise Linux 8 tidak mendukung Docker: pada distribusi ini telah digantikan oleh alat Red Hat sendiri seperti buildah Dan podman, yang kompatibel dengan Docker tetapi tidak perlu arsitektur server/klien untuk dijalankan. Menggunakan alat asli, jika memungkinkan, selalu merupakan cara yang disarankan untuk pergi, tetapi karena suatu alasan atau yang lain Anda mungkin masih ingin menginstal Docker asli. Dalam tutorial ini, kami melihat bagaimana mungkin untuk menginstal Docker CE di rhel8, dengan menggunakan repositori Docker resmi untuk Centos7, yang merupakan klon yang kompatibel 100%.

Ini bukan solusi yang ideal, dan seperti yang kita lihat, saat ini, beberapa solusi diperlukan untuk membuat Docker bekerja di rhel8. Jika beberapa masalah baru muncul, atau solusi yang lebih baik untuk masalah yang disebutkan di atas ditemukan, artikel ini akan diperbarui sesuai. Pantau terus.

Tutorial Linux Terkait:

  • Cara membuat tumpukan lampu berbasis Docker menggunakan Docker di…
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Instal Docker di Almalinux
  • Cara Terhubung ke Docker Container Via SSH
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Cara menginstal kubernet di semua distro linux
  • Cara menginstal debian pada wadah Luks yang ada
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Cara Menginstal dan Mengkonfigurasi Mesin Docker-CE/Moby di Fedora…
  • Menguasai loop skrip bash