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


1. 前言

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

但如果你每天都使用Docker,卻不能立即切換到buildah和podman,那該怎麼辦呢?不要擔心,因為有辦法安裝Docker和Docker組成的RHEL8或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。

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

在RHEL8/CentOS8上安裝Docker CE


有兩個版本的Docker可用。

Community Edition (CE): 對於希望開始使用Docker並嘗試基於容器的應用程序的個人開發人員和小型團隊來說,這是一個理想的選擇。
Enterprise Edition (EE): 為企業開發和IT團隊設計,這些團隊在生產環境中構建、交付和運行業務關鍵型應用程序。

Docker企業版需要一個活動許可證才能使用。在本指南中,我們將在RHEL8或CentOS8上安裝Docker CE。在安裝Docker庫之前,讓我們先添加它。

<code>sudocurlhttps://download.docker.com/linux/centos/docker-ce.repo-o/etc/yum.repos.d/docker-ce.repo
/<code>

這個命令將把Docker存儲庫文件下載到/etc/yum.repos.d/docker-ce.repo。讓我們更新RPM索引緩存。

``` bash
sudo yum makecache

<code>UpdatingSubscriptionManagementrepositories.
UpdatingSubscriptionManagementrepositories.
DockerCEStable-x86_646.1kB/s|14kB00:02
RedHatEnterpriseLinux8forx86_64-AppStreamBeta(RPMs)1.8kB/s|4.1kB00:02
RedHatEnterpriseLinux8forx86_64-BaseOSBeta(RPMs)3.5kB/s|4.1kB00:01
Metadatacachecreated.


最後,通過在終端中運行下面的命令來安裝DockerCE。
/<code>

bash
sudo dnf -y install docker-ce --nobest

<code>啟動並使Docker服務在引導時啟動。
/<code>

bash
sudo systemctl enable --now docker

<code>docker服務狀態應該指示正在運行。
/<code>

bash
systemctl status docker

<code>●docker.service-DockerApplicationContainerEngine
Loaded:loaded(/usr/lib/systemd/system/docker.service;enabled;vendorpreset:disabled)
Active:active(running)sinceSun2019-03-1009:52:54EAT;29sago
Docs:https://docs.docker.com
MainPID:2875(dockerd)
Tasks:21(limit:11510)
Memory:48.3M
CGroup:/system.slice/docker.service
├─2875/usr/bin/dockerd
└─2882docker-containerd--config/var/run/docker/containerd/containerd.toml
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.261477553+03:00"level=infomsg="ClientConnswitchingbalancerto\"pick_first\"">
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.261506651+03:00"level=infomsg="pickfirstBalancer:HandleSubConnStateChange:0xc>
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.261707466+03:00"level=infomsg="pickfirstBalancer:HandleSubConnStateChange:0xc>
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.261722124+03:00"level=infomsg="Loadingcontainers:start."
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.637205789+03:00"level=infomsg="Defaultbridge(docker0)isassignedwithanIP>
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.835734889+03:00"level=infomsg="Loadingcontainers:done."
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.857760401+03:00"level=infomsg="Dockerdaemon"commit=d7080c1graphdriver(s)=ove>
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.858095579+03:00"level=infomsg="Daemonhascompletedinitialization"
Mar1009:52:54rhel8.localdockerd[2875]:time="2019-03-10T09:52:54.915887172+03:00"level=infomsg="APIlistenon/var/run/docker.sock"
Mar1009:52:54rhel8.localsystemd[1]:StartedDockerApplicationContainerEngine.

`dockergroup`被創建,但是沒有用戶被添加到組中。將您的用戶添加到此組以運行不帶sudo的docker命令。
/<code>

bash
sudo usermod -aG docker

<code>
/<code>

bash
id USER¨G5GbashidUSER

<code>uid=1000(jmutai)gid=1000(jmutai)groups=1000(jmutai),10(wheel),984(docker)

退出並再次登錄使用Docker而不使用sudo。安裝的Docker版本可以通過以下方式檢查:
/<code>

bash
newgrp docker

<code>```bash
dockerversion
/<code>

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

在RHEL8或者CentOS8系統上


<code>dockerpullalpine
/<code>

Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

查看已經下載的Docker列表:

<code>dockerimages
/<code>

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是否正常工作。

<code>dockerrun-it--rmalpine/bin/sh
/#apkupdate
fetchhttp://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetchhttp://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.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:9754distinctpackagesavailable
/#exit
/<code>

4. 在RHEL8或者CentOS8上安裝Docker Compose

我們已經在RHEL8或者CentOS 8上安裝並運行了Docker,現在讓我們把檔位改為Docker合成。Docker組合是一個用於定義和運行多容器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或者相關組件了嗎?其實組件不多,關鍵是後面的配置與使用。

本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:
https://www.linuxrumen.com/rmxx/1497.html

點擊瞭解更多,快速查看更多的技術文章列表。


分享到:


相關文章: