CentOS Docker 安装指南 (详细步骤) – wiki基地

CentOS Docker 安装指南 (详细步骤)

Docker 是一种流行的容器化平台,允许开发者将应用程序及其依赖项打包到一个称为容器的标准化单元中。这些容器可以在任何支持 Docker 的环境中运行,从而简化了部署、管理和扩展应用程序的过程。本指南将提供在 CentOS 系统上安装和配置 Docker 的详细步骤,包括安装前的准备工作、安装过程、配置、以及一些常用的 Docker 操作示例。

1. 准备工作

在开始安装 Docker 之前,我们需要确保 CentOS 系统满足一些基本的要求:

  • 操作系统版本: 本指南适用于 CentOS 7、CentOS 8 和 CentOS 9。不同版本之间可能存在细微差异,但核心步骤基本相同。
  • Root 权限: 安装 Docker 需要 root 或具有 sudo 权限的用户。
  • 网络连接: 需要一个稳定的网络连接,以便下载 Docker 软件包。
  • 系统更新: 强烈建议在安装前更新系统软件包,以确保系统稳定性和安全性。

1.1 更新系统软件包

使用以下命令更新 CentOS 系统的软件包:

bash
sudo yum update -y

这个命令会检查系统上所有可用的软件包更新,并安装所有更新。 -y 选项会自动确认所有安装提示,无需手动输入 y

1.2 卸载旧版本 Docker (如果存在)

如果您之前安装过旧版本的 Docker,建议先将其卸载,以避免冲突。可以使用以下命令卸载:

bash
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

这个命令会删除与 Docker 相关的软件包。

2. 安装 Docker Engine

有几种方法可以在 CentOS 上安装 Docker Engine。最推荐的方法是使用 Docker 官方提供的 yum 仓库,因为这样可以更容易地管理和更新 Docker 版本。

2.1 使用 Docker 官方 Yum 仓库安装

步骤 1: 添加 Docker Yum 仓库

首先,我们需要添加 Docker 官方的 Yum 仓库到我们的 CentOS 系统。这允许 yum 命令从 Docker 仓库下载和安装软件包。

bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  • yum install -y yum-utils 安装 yum-utils 工具包,该工具包提供了一些方便的 yum 命令扩展,例如 yum-config-manager
  • yum-config-manager --add-repo <仓库地址> 添加指定的 Yum 仓库到系统中。这里我们添加的是 Docker 的 CE (Community Edition) 仓库。

步骤 2: (可选) 启用测试仓库或边缘仓库

默认情况下,我们使用的是 Docker 的稳定版本仓库。如果您想尝试 Docker 的测试版本或边缘版本,可以启用相应的仓库。 注意: 使用测试版本或边缘版本可能存在稳定性和兼容性问题。

  • 启用测试仓库:

    bash
    sudo yum-config-manager --enable docker-ce-test

  • 启用边缘仓库:

    bash
    sudo yum-config-manager --enable docker-ce-edge

如果您启用了测试仓库或边缘仓库,您可能需要禁用它们,才能安装稳定版本。 可以使用以下命令禁用仓库:

bash
sudo yum-config-manager --disable docker-ce-test
sudo yum-config-manager --disable docker-ce-edge

步骤 3: 安装 Docker Engine

现在,我们可以使用 yum 命令安装 Docker Engine、containerd 和 Docker Compose。

bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

  • docker-ce 是 Docker Engine 的核心软件包。
  • docker-ce-cli 是 Docker 命令行接口 (CLI) 工具,用于与 Docker Engine 交互。
  • containerd.io 是一个容器运行时,负责管理容器的生命周期。
  • docker-compose-plugin 是 Docker Compose V2 的插件,用于定义和运行多容器应用程序。

步骤 4: 启动 Docker 服务

安装完成后,我们需要启动 Docker 服务。

bash
sudo systemctl start docker

步骤 5: 设置 Docker 开机自启动

为了确保 Docker 在系统启动时自动运行,我们需要启用 Docker 的开机自启动功能。

bash
sudo systemctl enable docker

步骤 6: 验证 Docker 安装

可以使用以下命令验证 Docker 是否成功安装并运行:

bash
docker version

这个命令会显示 Docker Engine 和 Docker CLI 的版本信息。 如果看到版本信息,则说明 Docker 已成功安装。

还可以运行一个简单的 “Hello World” 容器来测试 Docker 的功能:

bash
docker run hello-world

这个命令会从 Docker Hub 下载 hello-world 镜像,并在容器中运行它。 如果一切正常,您会看到一条 “Hello from Docker!” 的消息。

2.2 使用 RPM 包安装

虽然不推荐,但如果您需要离线安装或者特定版本的 Docker,可以使用 RPM 包进行安装。

步骤 1: 下载 RPM 包

访问 Docker 官方网站或第三方镜像站点,下载您需要的 Docker RPM 包。 请确保下载的 RPM 包与您的 CentOS 系统版本兼容。

步骤 2: 安装 RPM 包

使用 yum localinstall 命令安装 RPM 包。

bash
sudo yum localinstall <RPM 包的路径>

例如:

bash
sudo yum localinstall /path/to/docker-ce-20.10.7-3.el7.x86_64.rpm

yum localinstall 命令会自动解决依赖关系并安装软件包。

步骤 3: 启动 Docker 服务和设置开机自启动

与使用 Yum 仓库安装后的步骤相同,启动 Docker 服务并设置开机自启动。

3. 配置 Docker

安装完成后,我们可能需要对 Docker 进行一些配置,以满足特定的需求。

3.1 配置 Docker 镜像加速器

由于 Docker Hub 的服务器位于国外,国内用户拉取镜像的速度可能比较慢。 可以配置 Docker 镜像加速器来提高拉取镜像的速度。

步骤 1: 获取加速器地址

您可以选择使用阿里云、网易云、DaoCloud 等提供的镜像加速器。 注册并登录这些平台后,您可以获取到专属的加速器地址。

步骤 2: 配置 Docker Daemon

编辑 Docker Daemon 的配置文件 /etc/docker/daemon.json 。 如果该文件不存在,则创建它。

bash
sudo nano /etc/docker/daemon.json

添加以下内容到 daemon.json 文件中,将 <您的加速器地址> 替换为您实际的加速器地址。

json
{
"registry-mirrors": ["<您的加速器地址>"]
}

例如,使用阿里云加速器:

json
{
"registry-mirrors": ["https://<您的加速器ID>.mirror.aliyuncs.com"]
}

步骤 3: 重启 Docker 服务

保存 daemon.json 文件并重启 Docker 服务。

bash
sudo systemctl restart docker

3.2 配置 Docker 存储驱动

Docker 使用存储驱动来管理容器镜像和容器数据的存储。 不同的存储驱动在性能和功能方面有所不同。 常用的存储驱动包括 overlay2devicemapperaufs

  • overlay2: 是 Docker 推荐的存储驱动,在 CentOS 7.x 以上版本上具有良好的性能和稳定性。

  • devicemapper: 是较旧的存储驱动,可能在某些情况下存在性能问题。

  • aufs: 是较旧的存储驱动,CentOS 8 及以上版本不再支持。

默认情况下,Docker 会自动选择合适的存储驱动。 如果您需要手动配置存储驱动,可以编辑 /etc/docker/daemon.json 文件,添加 storage-driver 参数。

json
{
"storage-driver": "overlay2"
}

修改后,需要重启 Docker 服务。

3.3 允许非 root 用户运行 Docker 命令

默认情况下,只有 root 用户或具有 sudo 权限的用户才能运行 Docker 命令。 如果您希望允许非 root 用户运行 Docker 命令,可以将其添加到 docker 用户组。

步骤 1: 创建 docker 用户组 (如果不存在)

bash
sudo groupadd docker

步骤 2: 将用户添加到 docker 用户组

bash
sudo usermod -aG docker <您的用户名>

例如:

bash
sudo usermod -aG docker john

步骤 3: 重新登录或重启系统

要使更改生效,您需要重新登录或重启系统。

4. 常用 Docker 操作示例

安装和配置 Docker 后,让我们来看一些常用的 Docker 操作示例。

4.1 搜索镜像

bash
docker search <镜像名称>

例如:

bash
docker search nginx

这个命令会在 Docker Hub 上搜索与 nginx 相关的镜像。

4.2 拉取镜像

bash
docker pull <镜像名称:标签>

例如:

bash
docker pull nginx:latest

这个命令会从 Docker Hub 拉取 nginx 镜像的 latest 标签版本。 如果没有指定标签,则默认拉取 latest 标签版本。

4.3 查看本地镜像

bash
docker images

这个命令会列出本地已下载的所有镜像。

4.4 运行容器

bash
docker run [OPTIONS] <镜像名称:标签> [COMMAND] [ARG...]

  • OPTIONS : 用于配置容器的各种选项,例如端口映射、卷挂载、环境变量等。

  • <镜像名称:标签> : 指定要使用的镜像。

  • COMMAND : 指定在容器启动后要执行的命令。

  • ARG... : 传递给命令的参数。

例如:

bash
docker run -d -p 80:80 nginx:latest

这个命令会创建一个新的容器,使用 nginx:latest 镜像,并将容器的 80 端口映射到主机的 80 端口。 -d 选项表示以后台模式运行容器。

4.5 查看正在运行的容器

bash
docker ps

这个命令会列出当前正在运行的容器。

4.6 查看所有容器 (包括已停止的)

bash
docker ps -a

4.7 停止容器

bash
docker stop <容器 ID 或容器名称>

4.8 启动容器

bash
docker start <容器 ID 或容器名称>

4.9 重启容器

bash
docker restart <容器 ID 或容器名称>

4.10 删除容器

bash
docker rm <容器 ID 或容器名称>

4.11 删除镜像

bash
docker rmi <镜像 ID 或镜像名称:标签>

4.12 进入容器

bash
docker exec -it <容器 ID 或容器名称> /bin/bash

这个命令会在容器中启动一个新的 bash 会话,允许您在容器内部执行命令。

5. 总结

本指南详细介绍了在 CentOS 系统上安装和配置 Docker 的步骤,包括安装前的准备工作、使用 Yum 仓库或 RPM 包安装 Docker Engine、配置 Docker 镜像加速器、存储驱动以及常用 Docker 操作示例。 通过遵循这些步骤,您可以成功地在 CentOS 系统上搭建 Docker 环境,并开始使用 Docker 容器化您的应用程序。 请务必查阅 Docker 官方文档以获取更深入的了解和高级配置选项。

6. 问题排查

如果在安装或配置过程中遇到问题,可以参考以下建议:

  • 查看 Docker 日志: 使用 journalctl -u docker 命令查看 Docker 服务的日志,可以帮助您找到问题的根源。
  • 检查网络连接: 确保系统可以访问 Docker Hub 和镜像加速器。
  • 检查防火墙设置: 确保防火墙没有阻止 Docker 相关的网络流量。
  • 查看 Docker 官方文档和社区论坛: Docker 官方文档和社区论坛提供了丰富的资源和解决方案,可以帮助您解决各种问题。

希望本指南能够帮助您顺利地完成 Docker 的安装和配置。 祝您使用愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部