請關注本頭條号,每天堅持更新原創幹貨技術文章。
如需學習視訊,請在微信搜尋公衆号“智傳網優”直接開始自助視訊學習
1. 前言
本文主要講解如何在RHEL8或者CentOS8系統上安裝Docker。本教程将指導您如何在RHEL8或CentOS8。Docker在RHEL8上沒有得到官方支援,因為它已經被紅帽工具-buildah和podman所取代。我們将在另一篇文章中讨論buildah和podman。
但如果你每天都使用Docker,卻不能立即切換到buildah和podman,那該怎麼辦呢?不要擔心,因為有辦法安裝Docker和Docker組成的RHEL8或CentOS8。Docker是一個允許您在容器中建立、部署和運作應用程式的工具。容器允許開發人員将應用程式與其依賴項打包,并将其作為單個包發出。容器通常用于微服務環境。

如何在RHEL8或者CentOS8系統上安裝Docker
Docker部件和術語
在深入了解安裝和使用示例之前,我們需要澄清一些Docker特有的術語。下面是Docker生态系統中常用的術語。
- Docker daemon: 這也被稱為Docker引擎,它是一個背景程序,運作在負責建構和運作容器的主機系統上。
- Docker Client: 這是使用者用來與Docker守護程序互動的指令行工具。
- Docker Image: 鏡像是一個不可變的檔案,本質上是容器的快照。docker鏡像具有運作應用程式所需的檔案系統和應用程式依賴項。
- Docker container: 這是一個正在運作的docker鏡像執行個體,帶有一個應用程式及其依賴項。每個容器都有唯一的程序ID,并且與其他容器隔離。容器共享的唯一東西是核心。
- Docker registry: 這是一個負責管理Docker容器鏡像的存儲和傳遞的應用程式。它可以是私有的,也可以是公共的。
2. 在RHEL8/CentOS8上安裝Docker CE
到目前為止,我們已經介紹了docker的介紹和術語。我們應該準備好在RHEL8或CentOS8上安裝Docker CE。我們将開始安裝Docker。
在RHEL8/CentOS8上安裝Docker CE
有兩個版本的Docker可用。
Community Edition (CE): 對于希望開始使用Docker并嘗試基于容器的應用程式的個人開發人員和小型團隊來說,這是一個理想的選擇。
Enterprise Edition (EE): 為企業開發和IT團隊設計,這些團隊在生産環境中建構、傳遞和運作業務關鍵型應用程式。
Docker企業版需要一個活動許可證才能使用。在本指南中,我們将在RHEL8或CentOS8上安裝Docker CE。在安裝Docker庫之前,讓我們先添加它。
sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
這個指令将把Docker存儲庫檔案下載下傳到/etc/yum.repos.d/docker-ce.repo。讓我們更新RPM索引緩存。
``` bash
sudo yum makecache
Updating Subscription Management repositories.Updating Subscription Management repositories.Docker CE Stable - x86_64 6.1 kB/s | 14 kB 00:02 Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) 1.8 kB/s | 4.1 kB 00:02 Red Hat Enterprise Linux 8 for x86_64 - BaseOS Beta (RPMs) 3.5 kB/s | 4.1 kB 00:01 Metadata cache created.最後,通過在終端中運作下面的指令來安裝Docker CE。
bash
sudo dnf -y install docker-ce --nobest
啟動并使Docker服務在引導時啟動。
bash
sudo systemctl enable --now docker
docker服務狀态應該訓示正在運作。
bash
systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2019-03-10 09:52:54 EAT; 29s ago Docs: https://docs.docker.com Main PID: 2875 (dockerd) Tasks: 21 (limit: 11510) Memory: 48.3M CGroup: /system.slice/docker.service ├─2875 /usr/bin/dockerd └─2882 docker-containerd --config /var/run/docker/containerd/containerd.toml Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261477553+03:00" level=info msg="ClientConn switching balancer to "pick_first""> Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261506651+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc> Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261707466+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc> Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261722124+03:00" level=info msg="Loading containers: start." Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.637205789+03:00" level=info msg="Default bridge (docker0) is assigned with an IP > Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.835734889+03:00" level=info msg="Loading containers: done." Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.857760401+03:00" level=info msg="Docker daemon" commit=d7080c1 graphdriver(s)=ove> Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.858095579+03:00" level=info msg="Daemon has completed initialization" Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.915887172+03:00" level=info msg="API listen on /var/run/docker.sock" Mar 10 09:52:54 rhel8.local systemd[1]: Started Docker Application Container Engine.`docker group`被建立,但是沒有使用者被添加到組中。将您的使用者添加到此組以運作不帶sudo的docker指令。
bash
sudo usermod -aG docker
bash
id USER¨G5GbashidUSER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)退出并再次登入使用Docker而不使用sudo。安裝的Docker版本可以通過以下方式檢查:
bash
newgrp docker
```bashdocker version
Client:
Version: 18.06.3-ce
API version: 1.38
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:26:51 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.3-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:28:17 2019
OS/Arch: linux/amd64
Experimental: false
3. 在RHEL8或者CentOS8系統上拉取測試docker鏡像
最後一步是在RHEL8或者CentOS8系統上通過下載下傳測試版的docker容器來測試安裝。
在RHEL8或者CentOS8系統上
docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest
檢視已經下載下傳的Docker清單:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 5cb3aa00f899 2 days ago 5.53MB
hello-world latest fce289e99eb9 2 months ago 1.84kB
通過從下載下傳的鏡像運作alpine容器來驗證Docker CE是否正常工作。
docker run -it --rm alpine /bin/sh/ # apk updatefetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gzfetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gzv3.9.2-1-g592d872fb8 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]v3.9.2-2-ge7dc3349a9 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]OK: 9754 distinct packages available/ # exit
4. 在RHEL8或者CentOS8上安裝Docker Compose
我們已經在RHEL8或者CentOS 8上安裝并運作了Docker,現在讓我們把檔位改為Docker合成。Docker組合是一個用于定義和運作多容器Docker應用程式的工具。
在RHEL8或者CentOS8上安裝Docker Compose
應用程式服務是使用組合檔案配置的。與運作docker指令不同,從配置建立和啟動所有服務隻需要一個指令。Docker Compose是用于開發、測試和準備環境以及CI工作流的優秀工具。
5. 在RHEL8或者CentOS 8上下載下傳Docker Compose
請遵循我們在在RHEL8或者CentOS 8 Linux上安裝最新Docker Compose的單獨指南。
6. 在RHEL8或者CentOS 8上安裝Docker UI -可選
如果你需要Docker管理界面,它可以讓你輕松地管理不同的Docker主機和容器,請給Portainer一個嘗試。它易于安裝和使用。
7. 在RHEL8或者CentOS 8上監控Docker containers
可以在RHEL8或者CentOS 8上使用Netdata或Ctop或Prometheus和Grafana等監控工具來監控Docker容器。
8. 總結
通過本文,您應該可以了解到如何在RHEL8或者CentOS8系統上安裝Docker或者相關元件了嗎?其實元件不多,關鍵是後面的配置與使用。