GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menginstal Docker CE di RHEL 8 / CentOS 8

Rilis terbaru RHEL 8 / CentOS 8. Red Hat telah membangun alatnya sendiri, buildah dan podman , yang bertujuan agar kompatibel dengan gambar buruh pelabuhan yang ada dan bekerja tanpa bergantung pada daemon, memungkinkan pembuatan wadah sebagai pengguna biasa, tanpa memerlukan izin khusus (dengan beberapa batasan:misalnya pada saat penulisan, masih tidak mungkin untuk memetakan port host ke container tanpa hak istimewa).

Namun, beberapa alat khusus masih belum ada: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 mempelajari:

  • Cara mengaktifkan repositori docker-ce di RHEL 8 / CentOS 8
  • Cara menginstal docker dan docker-compose di RHEL 8 / CentOS 8


Docker diinstal pada 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 Docker versi 18.09.2
Lainnya Izin untuk menjalankan perintah dengan hak akses root.
Konvensi # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Apa itu Docker?

Docker adalah proyek open source yang memungkinkan pembuatan dan distribusi aplikasi di dalam containers , yang merupakan lingkungan standar yang dapat dengan mudah direplikasi, terlepas 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 .

Dengan menggunakan repositori eksternal, bagaimanapun, masih mungkin untuk menginstal Docker CE (Edisi Komunitas). Dalam tutorial ini kita akan melihat cara menginstal repositori ini; namun perhatikan, bahwa itu awalnya dimaksudkan untuk CentOS 7 (klon RHEL), dan versi komunitas Docker tidak memiliki dukungan resmi untuk Red Hat Enterprise Linux. Karena itu, ada masalah – kami membahasnya di bawah.

Menambahkan repositori eksternal

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

dnf config-manager utilitas mari kita, antara lain, dengan mudah mengaktifkan atau menonaktifkan repositori di distribusi kita. Secara default, hanya appstream dan baseos repositori diaktifkan di Rhel8; kita perlu menambahkan 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.docker.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 rinci tentang semua repositori yang diaktifkan. Inilah yang harus Anda lihat saat 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://download.docker.com/linux/centos/7/x86_64/stable
Repo-expire  : 172,800 second(s) (last: Mon 18 Feb 2019 10:23:54 AM CET)
Repo-filename: /etc/yum.repos.d/docker-ce.repo

Repo-id      : rhel-8-for-x86_64-appstream-rpms
Repo-name    : Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
Repo-revision: 1542158694
Repo-updated : Wed 14 Nov 2018 02:24:54 AM CET
Repo-pkgs    : 4,594
Repo-size    : 4.9 G
Repo-baseurl : https://cdn.redhat.com/content/beta/rhel8/8/x86_64/appstream/os
Repo-expire  : 86,400 second(s) (last: Mon 18 Feb 2019 10:23:55 AM CET)
Repo-filename: /etc/yum.repos.d/redhat.repo

Repo-id      : rhel-8-for-x86_64-baseos-rpms
Repo-name    : Red Hat Enterprise Linux 8 for x86_64 - BaseOS Beta (RPMs)
Repo-revision: 1542158719
Repo-updated : Wed 14 Nov 2018 02:25:19 AM CET
Repo-pkgs    : 1,686
Repo-size    : 925 M
Repo-baseurl : https://cdn.redhat.com/content/beta/rhel8/8/x86_64/baseos/os
Repo-expire  : 86,400 second(s) (last: Mon 18 Feb 2019 10:23:56 AM CET)
Repo-filename: /etc/yum.repos.d/redhat.repo
Total packages: 6,310

Menginstal docker-ce

docker-ce-stable repositori sekarang diaktifkan di sistem kami. Repositori berisi beberapa versi docker-ce package, untuk menampilkan semuanya, kita dapat menjalankan:

$ dnf list 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 harus diinstal? Nah, Red Hat tampaknya telah memblokir instalasi containerd.io> 1.2.0-3.el7 , yang merupakan ketergantungan docker-ce . Karena itu, cukup jalankan sudo dnf install docker-ce perintah, tidak akan berhasil. Seperti yang akan kita lihat sebentar lagi, masih mungkin untuk mengatasi masalah ini; sekali docker-ce diinstal, namun, masalah lain menjadi jelas:selama firewalld , manajer firewall sistem diaktifkan, DNS resolution di dalam wadah buruh pelabuhan tidak berfungsi.

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

  • Instal versi spesifik docker-ce yang membutuhkan versi containerd.io yang dapat diinstal paket;
  • Paksa penginstalan dengan memberikan --nobest pilihan
  • Instal containerd.io terbaru yang tersedia rpm secara manual;

Instal versi docker-ce tertentu

Pada saat penulisan versi docker-ce yang terinstal 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 kita lakukan adalah memberikan nama paket yang sepenuhnya memenuhi syarat, misalnya:

$ sudo dnf install docker-ce-3:18.09.1-3.el7

Paksa instalasi docker-ce dengan opsi –nobest

Biasanya, saat menginstal sebuah paket, kandidat terbaik yang tersedia dipilih dari repositori. Dalam hal ini, misalnya, penginstalan versi terbaru docker-ce dicoba (dan gagal). Dengan menggunakan --nobest opsi, kita dapat mengubah perilaku ini sehingga versi pertama docker-ce dengan dependensi yang memuaskan dipilih sebagai “fallback”, dalam hal ini 3:18.09.1-3.el7 .

$ sudo dnf install --nobest docker-ce
Dependencies resolved.

Problem: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.el7.x86_64 is excluded
  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
=======================================================================================================================================================
 Package                            Arch         Version                                                  Repository                              Size
=======================================================================================================================================================
Installing:
 docker-ce                          x86_64       3:18.09.1-3.el7                                          docker-ce-stable                        19 M
Installing dependencies:
 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.module+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
Skipping packages with broken dependencies:
 docker-ce                          x86_64       3:19.03.2-3.el7                                          docker-ce-stable                        24 M

Transaction Summary
=======================================================================================================================================================
Install  12 Packages
Skip      1 Package

Total download size: 85 M
Installed size: 351 M
Is this ok [y/N]:

Instal paket containerd.io terbaru yang tersedia secara manual

Jika kita benar-benar perlu menginstal versi terbaru docker-ce , kita dapat menginstal versi containerd.io yang diperlukan secara manual, dengan menjalankan:

$ sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

Setelah paket terinstal, kita cukup menginstal docker-ce terbaru :

$ sudo dnf install docker-ce
Dependencies resolved.
=======================================================================================================================================================
  Package                          Arch                      Version                             Repository                                        Size
=======================================================================================================================================================
Installing:
  docker-ce                        x86_64                    3:19.03.2-3.el7                     docker-ce-stable                                  24 M
Installing dependencies:
  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

Transaction Summary
=======================================================================================================================================================
Install  4 Packages

Total download size: 65 M
Installed size: 275 M
Is this 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 DNS resolution bekerja di dalam wadah Docker, kita harus menonaktifkan firewalld (sistem reboot mungkin juga diperlukan):

$ sudo systemctl disable firewalld

Mulai dan aktifkan daemon buruh pelabuhan

Sekali docker-ce terinstal, kita harus memulai dan mengaktifkan daemon buruh pelabuhan, 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-active docker
active

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

$ systemctl is-enabled docker
enabled

Memasang docker-compose

Compose Docker adalah paket yang sangat berguna yang memungkinkan kita mengelola aplikasi multi-kontainer, seperti misalnya yang didasarkan pada tumpukan LAMP, 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 buruh pelabuhan). Paket tidak tersedia di Rhel8, juga tidak ada yang setara untuk digunakan dengan alat Rhel. Namun, Anda dapat menginstalnya dengan banyak cara:teruslah membaca dan putuskan mana yang paling cocok untuk Anda.

Instalasi global

Cara kita menginstal docker-compose bervariasi tergantung apakah kita 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/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o docker-compose

Setelah biner diunduh, kami memindahkannya ke /usr/local/bin dan kami membuatnya dapat dieksekusi:

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

/usr/local hierarki tidak dipilih secara acak. Struktur direktori ini dibuat untuk digunakan untuk file yang diinstal oleh administrator lokal secara manual (untuk perangkat lunak yang dikompilasi dari sumber, misalnya), untuk memastikan pemisahan dari perangkat lunak yang diinstal dengan manajer paket sistem.

Meskipun mungkin bagi pengguna biasa untuk menjalankan perintah terkait buruh pelabuhan jika dia adalah bagian dari docker group (grup dibuat secara otomatis ketika kita menginstal docker-ce), secara default mereka harus dijalankan dengan hak akses root untuk alasan keamanan. Ketika kita perlu melakukan yang terakhir, karena /usr/local/bin direktori tidak ada di PATH pengguna root , kita perlu memanggil biner yang menentukan lokasinya atau menambahkan /usr/local/bin ke PATH diri. Opsi pertama adalah yang saya rekomendasikan dalam kasus ini.

Instalasi per pengguna

Jika pengguna kami adalah bagian dari docker grup, dan dengan demikian diizinkan untuk menjalankan perintah buruh pelabuhan, dan karena docker-compose tersedia sebagai paket python, kami juga dapat menginstalnya menggunakan pip , pengelola paket python. Pertama, pastikan pip itu sendiri terinstal:

$ sudo dnf install python3-pip

Untuk mendapatkan komposisi buruh pelabuhan, kami menjalankan:

$ pip3.6 install docker-compose --user

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

Menguji buruh pelabuhan

Kami menginstal docker dan docker-compose, sekarang untuk memeriksa apakah semuanya berfungsi seperti yang diharapkan, kami dapat mencoba membuat gambar dan menjalankan wadah:dalam hal ini kami akan menggunakan httpd resmi 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, wadah berdasarkan itu akan diluncurkan di latar depan (akan dihapus secara otomatis saat dihentikan). Kita seharusnya dapat melihat It works! pesan ketika 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 memerlukan arsitektur server/klien untuk dijalankan. Menggunakan alat asli, jika memungkinkan, selalu merupakan cara yang disarankan, tetapi karena suatu alasan Anda mungkin masih ingin menginstal Docker asli. Dalam tutorial ini, kita melihat bagaimana mungkin untuk menginstal Docker CE di Rhel8, dengan menggunakan repositori Docker resmi untuk CentOS7, yang merupakan tiruan yang 100% kompatibel.

Ini bukan solusi 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. Pantau terus.


Cent OS
  1. Cara Menginstal Docker di CentOS 7 / RHEL 7

  2. Cara Menginstal Docker Di CentOS

  3. Cara menginstal buruh pelabuhan di CentOS / RHEL / Fedora

  1. Cara Menginstal Docker di CentOS 7

  2. Cara Menginstal Docker Compose di CentOS 7

  3. Cara Menginstal Docker di CentOS 8

  1. Cara Menginstal Rancher di CentOS 7

  2. Cara menginstal phpMyAdmin di RHEL 8 / CentOS 8

  3. Cara Menginstal P7Zip di RHEL 8 / CentOS 8