天天看點

centos8 安裝docker_如何在RHEL8或者CentOS8系統上安裝Docker

請關注本頭條号,每天堅持更新原創幹貨技術文章。

如需學習視訊,請在微信搜尋公衆号“智傳網優”直接開始自助視訊學習

1. 前言

本文主要講解如何在RHEL8或者CentOS8系統上安裝Docker。本教程将指導您如何在RHEL8或CentOS8。Docker在RHEL8上沒有得到官方支援,因為它已經被紅帽工具-buildah和podman所取代。我們将在另一篇文章中讨論buildah和podman。

但如果你每天都使用Docker,卻不能立即切換到buildah和podman,那該怎麼辦呢?不要擔心,因為有辦法安裝Docker和Docker組成的RHEL8或CentOS8。Docker是一個允許您在容器中建立、部署和運作應用程式的工具。容器允許開發人員将應用程式與其依賴項打包,并将其作為單個包發出。容器通常用于微服務環境。

centos8 安裝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。

centos8 安裝docker_如何在RHEL8或者CentOS8系統上安裝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容器來測試安裝。

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應用程式的工具。

centos8 安裝docker_如何在RHEL8或者CentOS8系統上安裝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或者相關元件了嗎?其實元件不多,關鍵是後面的配置與使用。