如何在 CentOS 上安装 Docker

在 Ubuntu 上安装 Docker 很简单,因为 Ubuntu 提供 码头工人 在其存储库中。 但是,CentOS 的默认存储库中不提供 Docker。

不用担心,您可以通过三种方式将 docker 安装在 CentOS Linux 系统。

  • 使用 docker 的仓库
  • 下载 RPM
  • 使用帮助脚本

在这里,我将引导您完成使用 docker 的 RPM 存储库安装 Docker CE 的过程。

Docker CE 代表 Docker 社区版。 这是 Docker 的免费和开源版本。 有付费支持的 Docker EE(企业版)。 世界上大多数人都在使用 Docker CE,它通常被认为是 Docker 的同义词。

在 CentOS 上安装 Docker

在继续之前,请确保您已更新系统。 您可以使用以下方法更新 CentOS:

sudo dnf update

第一步:添加官方仓库

使用以下命令添加 docker 的官方仓库

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

添加新存储库后,您还应该更新包缓存:

sudo dnf update

第 2 步:安装 Docker CE

使用自定义存储库的问题在于,如果您尝试安装最新版本的 docker-ce,它可能会出现依赖问题。

为了 example,当我使用以下命令检查 docker-ce 的可用版本时:

dnf list docker-ce --showduplicates |  sort -r

我得到了 docker-ce-3:19.03.9-3.el7 作为最新版本。 但是安装最新版本的问题是它依赖于containerd.io版本>=1.2.2-3。 现在,这个版本的 容器d.io 在 CentOS 8 中不可用。

为了避免这种依赖循环并手动对抗它们,您可以使用 --nobest dnf 命令的选项。

它将检查 docker-ce 的最新版本,但是当它发现依赖问题时,它会检查 docker-ce 的下一个可用版本。 基本上,它可以帮助您在满足所有依赖项的情况下自动安装最合适的软件包版本。

在 CentOS 中安装 docker 没有偏头痛,试试这个命令,看看你的终端屏幕上的魔法:

sudo dnf install docker-ce --nobest

系统将提示您导入 GPG 密钥,确保该密钥与 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 在输入“y”之前。

容器d.io 是一个管理容器的守护进程。 Docker 只是 Linux 容器的一种形式。 为了使各种类型的容器图像可移植, 开放容器倡议 已经定义了一些标准。 containerd 用于管理符合 OCI 标准的容器镜像。

在 CentOS 上设置 docker

好的! 你已经安装了 docker,但它还没有准备好使用。 您必须先进行一些基本配置,然后才能顺利使用它。

不运行 docker sudo

你可以运行 docker 没有任何 sudo 通过将您的用户添加到 docker 团体。

docker 组应该已经存在。 使用以下命令检查:

awk -F: '/docker/ {print $1}' /etc/group

如果这没有输出,请使用 groupadd 命令创建 docker 组,如下所示:

sudo groupadd docker

现在将您的用户添加到 docker 使用 usermod 命令进行分组:

$ sudo usermod -aG docker user_name

将上述命令中的 user_name 更改为预期的用户名。

现在注销并重新登录以使组更改生效。

启动 docker 守护进程

安装了 Docker。 您的用户已添加到 docker 团体。 但这还不足以运行 docker。

在运行任何容器之前,需要运行 docker 守护进程。 docker 守护进程是管理所有容器、卷、网络等的程序。换句话说,守护进程完成所有繁重的工作。

使用以下命令启动 docker 守护进程:

sudo systemctl start docker

您还可以启用 docker daemon 在引导时自动启动:

sudo systemctl enable --now docker

通过运行示例容器验证 docker 安装

一切都完成了。 是时候通过运行 docker 容器来测试安装是否成功了。

要进行验证,您可以运行陈词滥调的 hello-world docker 容器。 它是一个很小的 ​​docker 镜像,非常适合快速测试 docker 安装。

docker run hello-world

如果一切正常,您应该会看到如下输出:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

以下是该命令在后台执行的操作:

  • docker客户端,也就是你刚才使用的命令行工具,联系了docker daemon。
  • 守护进程在本地系统中寻找 hello-world docker 镜像。 由于它没有找到图像,它从 Docker Hub 中提取它。
  • 引擎使用您通过客户端的命令行选项提供的所有选项创建容器。

这个 hello-world 镜像仅用于测试 docker 安装。 如果你想要一个更有用的容器,你可以尝试运行 Nginx 服务器 在这样的容器中:

docker run --rm --name nginx -p 56788:80 -d nginx:latest

命令运行完成后,打开浏览器并转到 https://your_ip_address:56788。 我希望你知道如何在 Linux 中知道你的 IP 地址。

您应该看到 nginx 服务器正在运行。 您现在可以停止容器。

docker stop nginx

我希望本教程能帮助你在 CentOS 上安装 docker。 请订阅更多 Docker 教程和 DevOps 技巧。