在 AlmaLinux、CentOS、Rocky Linux 中安装 Docker Engine 和 Docker Compose

前几天,我们讨论了什么是 码头引擎 以及如何 在 Ubuntu 中安装 Docker Engine 和 Docker Compose. 今天,我们将了解如何在基于 RHEL 的系统(如 AlmaLinux、CentOS 和 Rocky Linux)中使用 Docker Compose 安装 Docker Engine。

本指南已在 CentOS 8、AlmaLinux 8 和 Rocky Linux 8 上进行了正式测试。出于演示目的,我将使用在 Proxmox 上运行的 AlmaLinux 容器。 下面给出的所有命令对于大多数基于 RHEL 的系统都是相同的。

内容

  1. 码头工人要求
  2. 在 CentOS、AlmaLinux、Rocky Linux 中安装 Docker
    1. 1. 更新您的系统
    2. 2.添加Docker存储库
    3. 3. 安装 Docker
    4. 4.检查Docker版本
    5. 5. 测试 Docker
    6. 6.升级Docker
  3. 安装 Docker Compose
    1. 方法 1 – 使用二进制安装 Docker Compose
    2. 方法 2 – 使用 PiP 安装 Docker Compose
    3. 升级 Docker Compose
  4. 卸载 Docker 引擎
  5. 卸载 Docker Compose
  6. 结论

码头工人要求

要安装和配置 Docker,您的系统必须满足以下最低要求。

  1. 64 位 Linux 或 Windows 操作系统。
  2. 如果你在 Linux 上,内核版本应该是 3.10 或以上。
  3. 一个用户帐户 sudo 特权。
  4. VT (虚拟化技术)支持在您的系统 BIOS 上启用。 [Read: How To Find If A CPU Supports Virtualization Technology (VT)]
  5. 您的系统应该连接到 Internet。

在 Linux 中,要验证内核和架构详细信息,请从终端运行以下命令:

$ uname -a

样本输出:

Linux Almalinux8CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux

如您在上面的输出中看到的,我的 AlmaLinux 系统的内核版本是 5.15.35-3-pve 我的系统架构是 64 位 (x86_64 x86_64 x86_64 GNU/Linux)。 检查上述结果中的粗体字母。

小心: 在这里,我在使用 AlmaLinux 8 容器 Proxmox. 这就是为什么您在上述输出中的内核版本中看到“pve”一词的原因。 如果您使用的是 AlmaLinux 物理(或虚拟)机,您将看到 5.15.35-3-通用 作为内核版本。

嗯,Kernel 版本高于最低要求,arch 是 64 位的。 因此,我们可以毫无问题地安装和使用 Docker。

在 CentOS、AlmaLinux、Rocky Linux 中安装 Docker

确保您正在运行更新的操作系统。

1. 更新您的系统

依次运行以下命令 sudo 用户或 root 用户来更新您的 CentOS/AlmaLinux/Rocky Linux 系统。

$ sudo dnf --refresh update
$ sudo dnf upgrade

2.添加Docker存储库

安装 百胜工具 包,它提供了 百胜配置管理器 实用程序来设置存储库。

$ sudo dnf install yum-utils

接下来,使用 yum-config-manger 添加 Docker 存储库,如下所示:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. 安装 Docker

使用以下命令在 CentOS、AlmaLinux 和 Rocky Linux 上安装 Docker 引擎:

$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

下载 Docker 包后,系统会提示您导入 Docker GPG 密钥。 确保指纹匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,接受它。

Importing GPG key 0x621E9F35:  Userid     : "Docker Release (CE rpm) <[email protected]>"  Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35  From       : https://download.docker.com/linux/centos/gpg Is this ok [y/N]: y
在 CentOS、AlmaLinux、Rocky Linux 中安装 Docker

Docker 安装完成后,运行以下命令启用并启动 Docker 服务。

$ sudo systemctl enable docker
$ sudo systemctl start docker

使用命令检查 Docker 服务是否正在运行:

$ sudo systemctl status docker

样本输出:

● docker.service - Docker Application Container Engine    Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)   Drop-In: /run/systemd/system/docker.service.d            └─zzz-lxc-service.conf    Active: active (running) since Tue 2022-06-28 08:17:02 UTC; 8s ago      Docs: https://docs.docker.com  Main PID: 2748 (dockerd)     Tasks: 8    Memory: 28.5M    CGroup: /system.slice/docker.service            └─2748 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.167563866Z" level=info msg="ClientConn switching balancer to "pick_first""  module=grpc Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.169600819Z" level=error msg="Failed to built-in GetDriver graph btrfs /var/l ib/docker" Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.203579593Z" level=info msg="Loading containers: start." Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.350067769Z" level=info msg="Default bridge (docker0) is assigned with an IP  address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.410223534Z" level=info msg="Loading containers: done." Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415653550Z" level=warning msg="Not using native diff for overlay2, this may  cause degraded performance for building images: running in a user namespace" storage-driver=overlay2 Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415810806Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=ove rlay2 version=20.10.17 Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.415902359Z" level=info msg="Daemon has completed initialization" Jun 28 08:17:02 Almalinux8CT systemd[1]: Started Docker Application Container Engine. Jun 28 08:17:02 Almalinux8CT dockerd[2748]: time="2022-06-28T08:17:02.447662377Z" level=info msg="API listen on /var/run/docker.sock"

正如您在上面的输出中看到的,Docker 服务已启动并正在运行!

4.检查Docker版本

可以使用命令找到安装的 Docker 版本:

$ sudo docker version

样本输出:

Client: Docker Engine - Community  Version:           20.10.17  API version:       1.41  Go version:        go1.17.11  Git commit:        100c701  Built:             Mon Jun  6 23:03:11 2022  OS/Arch:           linux/amd64  Context:           default  Experimental:      true  Server: Docker Engine - Community  Engine:   Version:          20.10.17   API version:      1.41 (minimum version 1.12)   Go version:       go1.17.11   Git commit:       a89b842   Built:            Mon Jun  6 23:01:29 2022   OS/Arch:          linux/amd64   Experimental:     false  containerd:   Version:          1.6.6   GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1  runc:   Version:          1.1.2   GitCommit:        v1.1.2-0-ga916309  docker-init:   Version:          0.19.0   GitCommit:        de40ad0
在 AlmaLinux 中检查 Docker 版本

5. 测试 Docker

让我们继续,测试 Docker 是否正常工作。 我们可以运行一个 hello-world docker 镜像来验证 Docker 是否正确安装并正常工作。

为此,请运行:

$ sudo docker run hello-world

上述命令将下载一个测试 Docker 镜像,并执行一个示例 你好世界 容器内的程序。

如果您看到类似下面的输出,恭喜! Docker 在您的 CentOS/AlmaLinux/Rocky Linux 系统中运行良好。

Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete  Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651 Status: Downloaded newer image for hello-world:latest  Hello from Docker! This message shows that your installation appears to be working correctly.  To generate this message, Docker took the following steps:  1. The Docker client contacted the Docker daemon.  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.     (amd64)  3. The Docker daemon created a new container from that image which runs the     executable that produces the output you are currently reading.  4. The Docker daemon streamed that output to the Docker client, which sent it     to your terminal.  To try something more ambitious, you can run an Ubuntu container with:  $ docker run -it ubuntu bash  Share images, automate workflows, and more with a free Docker ID:  https://hub.docker.com/  For more examples and ideas, visit:  https://docs.docker.com/get-started/
在 AlmaLinux 中运行 Hello World Docker 容器在 AlmaLinux 中运行 Hello World Docker 容器

Docker 可以使用了!

我安装了 Docker,现在呢? 查看本系列的下一篇文章,了解 Docker 基础知识。

  • 开始使用 Docker

6.升级Docker

由于我们已经使用存储库安装了 Docker,我们可以通过简单地运行以下命令将 Docker 引擎升级到最新的可用版本:

$ sudo dnf --refresh update
$ sudo dnf upgrade

安装 Docker Compose

码头工人撰写 是一个可用于定义和运行多容器 Docker 应用程序的工具。 使用 Compose,您可以使用 Compose 文件来配置应用程序的服务。 然后,使用单个命令,您可以从配置中创建和启动所有服务。

我们可以使用以下任何一种方法安装 Docker Compose。

方法 1 – 使用二进制安装 Docker Compose

从以下位置下载最新的 Docker Compose 这里.

在撰写本文时,最新版本是 2.6.1.

运行以下命令下载最新的稳定 Docker compose 文件:

$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果有新版本可用,只需更换号码 v2.6.1 在上面的命令中使用新的版本号。 请不要忘记前言 “v” 在版本号之前。

最后,使用以下命令对二进制文件应用可执行权限:

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

要检查已安装的 docker composer 版本,请运行:

$ docker-compose version Docker Compose version v2.6.1

方法 2 – 使用 PiP 安装 Docker Compose

或者,我们可以使用安装 Docker Compose 画中画. Pip 是一个 Python 包管理器,用于安装用 Python 编程语言编写的应用程序。

请参阅以下指南在您的系统上安装 Pip。

  • 如何使用 Pip 管理 Python 包

安装 pip 后,运行以下命令安装 docker compose。 以下命令对于所有 Linux 发行版都是相同的!

$ pip install docker-compose

安装 Docker Compose 后,您可以使用以下命令检查版本:

$ docker-compose --version

您将看到如下所示的输出。

docker-compose version 2.6.1, build 8a1c60f6

恭喜! 我们已经成功安装了 Docker Community Edition 和 Docker Compose。

阅读我们的 Docker Compose 入门指南,了解如何实时使用 Docker compose 来定义和管理容器。

  • 在 Linux 中开始使用 Docker Compose

升级 Docker Compose

要升级 Docker Compose,只需下载较新的包文件并重复方法 1 中所示的安装说明。如果您使用 Pip 安装了 Compose,则可以使用以下命令升级 Docker Compose:

$ pip install --upgrade docker-compose

卸载 Docker 引擎

要从 CentOS、AlmaLinux 和 Rock Linux 系统中删除 Docker 引擎,请运行:

$ sudo dnf remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

系统上的 Docker 映像、容器、卷或自定义配置文件不会自动删除。

您应该使用以下命令手动删除所有映像、容器和卷:

$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd

卸载 Docker Compose

如果您使用二进制文件安装了 Compose,只需将其从 /usr/local/bin/ 小路。

$ sudo rm /usr/local/bin/docker-compose

如果您使用 PiP 安装了 Compose,请运行以下命令来删除 Docker Compose:

$ pip uninstall docker-compose

结论

我们知道如何在 CentOS、AlmaLinux 和 Rocky Linux 中安装 Docker Engine 和 Docker Compose。 我们还学习了如何通过运行一个基本的 hello-world docker 镜像来测试 Docker 引擎。 最后,我们看到了如何在不再需要 Docker 引擎和 docker compose 时删除它们。

推荐阅读:

  • 如何自动更新正在运行的 Docker 容器
  • ctop – Linux 容器的命令行监控工具
  • Portainer – 管理 Docker 的最简单方法
  • PiCluster – 一个简单的、基于 Web 的 Docker 管理应用程序
  • Dockly – 从终端管理 Docker 容器

资源:

  • 码头工人网站

免费 Docker 电子书:

  • 免费电子书:“Docker Containerization Cookbook”

AlmalinuxCentOSContainersDevOpsDockerInstall DockerLinuxLinux 管理Linux ContainersOS 级虚拟化Rocky LinuxSysadmin虚拟化