Linux下安装与配置Docker完整详细步骤

一、文档说明

本文档基于 CentOS 10(EL10) 系统编写,同时兼容 CentOS 8/9 等基于 DNF 包管理器的新版 CentOS 系统,覆盖从环境准备、源配置、安装、启动、优化到排错的全流程,适合运维人员、开发人员作为标准化部署手册使用。


二、前置环境要求

1. 系统版本要求

  • 支持系统:CentOS 8、CentOS 9、CentOS 10(推荐 CentOS 10,长期支持版本)
  • 系统架构:x86_64 架构(主流服务器架构,ARM 架构需单独适配)
  • 权限要求:必须使用 root 用户或拥有 sudo 权限的普通用户操作

2. 环境清理(避免旧版本冲突)

在安装前,必须彻底卸载系统中可能存在的旧版 Docker 及相关组件,避免依赖冲突:

bash 复制代码
# 卸载旧版Docker及相关组件
sudo dnf remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

说明:CentOS 8+ 系统默认预装 podman,与 Docker 存在端口冲突,必须卸载。

3. 安装基础依赖工具

安装 Docker 所需的系统依赖包,确保后续源配置、安装流程正常执行:

bash 复制代码
# 安装dnf核心工具包(CentOS 8+ 原生工具,替代旧版yum-utils)
sudo dnf -y install dnf-plugins-core

补充说明:

  • 旧版 CentOS 7 使用 yum install -y yum-utils,CentOS 8+ 已完全迁移至 DNF,yum 仅为兼容软链接,不推荐使用
  • 若误装 yum-utils 兼容包,可通过 sudo dnf remove -y yum-utils 卸载,不影响系统核心功能

三、配置 Docker 软件源(国内加速方案)

Docker 官方源服务器在海外,国内访问速度慢、易超时,强烈推荐使用阿里云镜像源,大幅提升安装和镜像拉取速度。

1. 移除旧的 Docker 官方源(若已添加)

若之前执行过官方源添加命令,需先删除旧源文件,避免源冲突:

bash 复制代码
# 直接删除官方源配置文件(Linux 通用删除源方法,替代不存在的--remove-repo参数)
sudo rm -f /etc/yum.repos.d/docker-ce.repo

2. 添加阿里云 Docker 镜像源

执行以下命令,一键写入阿里云源配置文件:

bash 复制代码
sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#CentOS7版本 

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

源文件说明:

  • 源配置文件会自动生成在 /etc/yum.repos.d/docker-ce.repo 路径下
  • 该源完美适配 CentOS 8/9/10 全版本,无需手动修改版本号
  • 若需手动编辑源文件,可执行 sudo vi /etc/yum.repos.d/docker-ce.repo,确保 baseurl 为阿里云地址

3. 刷新系统源缓存

执行缓存刷新命令,确保新添加的源生效:

bash 复制代码
sudo dnf makecache

执行成功标志:输出各源元数据下载进度,最终显示「缓存创建成功」,无报错信息。

四、安装 Docker 引擎

1. 安装 Docker 核心组件

执行以下命令,安装 Docker 最新稳定版及相关依赖:

bash 复制代码
# 安装Docker CE(社区版)、CLI工具、containerd容器运行时
sudo dnf -y install docker-ce docker-ce-cli containerd.io

组件说明:

  • docker-ce:Docker 社区版核心引擎,负责容器生命周期管理
  • docker-ce-cli:Docker 命令行工具,用于执行 docker 相关操作
  • containerd.io:容器运行时,Docker 20.10+ 版本的标准依赖,负责容器底层管理

2. 验证安装是否成功

安装完成后,执行以下命令验证 Docker 版本,确认安装正常:

bash 复制代码
# 查看Docker版本
docker --version
# 查看Docker详细信息
docker info

成功标志:

  • 输出版本信息(如 Docker version 27.3.1, build ce12230
  • docker info 无报错,正常输出系统资源、镜像源等信息

五、启动与配置 Docker 服务

1. 启动 Docker 服务

执行命令启动 Docker 守护进程:

bash 复制代码
sudo systemctl start docker

无报错输出即为启动成功(Linux 系统中「无报错 = 执行成功」)

2. 验证 Docker 启动状态

通过两种方式验证 Docker 是否正常运行:

方式 1:查看进程
bash 复制代码
ps -ef | grep docker

成功标志:输出 dockerd 守护进程信息,示例如下:

plaintext

复制代码
root      3105     1  0 14:34 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      3304  2148  0 14:35 pts/0    00:00:00 grep --color=auto docker

其中 dockerd 进程正常运行,说明 Docker 启动成功。

方式 2:运行测试镜像(官网测试标准)
bash 复制代码
sudo docker run hello-world

成功标志:输出「Hello from Docker!」欢迎信息,说明 Docker 安装、启动、网络全部正常,可正常拉取镜像、运行容器。

3. 配置 Docker 开机自启

设置 Docker 服务开机自启,确保服务器重启后 Docker 自动运行:

bash 复制代码
# 设置开机自启
sudo systemctl enable docker
# 验证自启状态
sudo systemctl is-enabled docker

成功标志:输出 enabled,说明自启配置生效。

六、Docker 核心优化配置

1. 配置阿里云镜像加速器(必做)

Docker 官方镜像仓库海外访问速度慢,配置阿里云专属加速器,可将镜像拉取速度提升 10 倍以上。

步骤 1:获取专属加速器地址
  1. 登录 阿里云容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances

  2. 左侧菜单选择「镜像工具」→「镜像加速器」

  3. 复制专属加速器地址(格式:https://xxxxxx.mirror.aliyuncs.com,每个账号唯一)

步骤 2:配置加速器

执行以下命令,写入加速器配置:

bash 复制代码
# 创建Docker配置目录
sudo mkdir -p /etc/docker
# 写入daemon.json配置文件(替换为你的专属加速器地址)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}
EOF

配置说明:

  • registry-mirrors:配置镜像加速器地址
  • log-driver/log-opts:限制容器日志大小,避免日志占满磁盘
  • storage-driver:指定存储驱动为 overlay2(Docker 推荐的高性能存储驱动)
步骤 3:重启 Docker 生效
bash 复制代码
# 重载systemd配置
sudo systemctl daemon-reload
# 重启Docker服务
sudo systemctl restart docker
步骤 4:验证加速器生效
bash 复制代码
docker info

成功标志:在输出中找到 Registry Mirrors 字段,显示你的阿里云加速器地址,说明配置生效。

2. 非 root 用户免 sudo 执行 Docker(可选)

默认情况下,普通用户执行 docker 命令需要加 sudo,可通过以下配置实现免 sudo 操作:

bash 复制代码
# 将当前用户添加到docker用户组
sudo usermod -aG docker $USER
# 立即生效(无需重启系统)
newgrp docker

验证:执行 docker ps,无需加 sudo 即可正常输出,说明配置成功。

3. 配置 Docker 数据目录(可选,生产环境推荐)

默认 Docker 数据目录为 /var/lib/docker,若系统盘空间不足,可迁移至数据盘:

bash 复制代码
# 1. 停止Docker服务
sudo systemctl stop docker
# 2. 创建新的数据目录(示例:/data/docker)
sudo mkdir -p /data/docker
# 3. 迁移旧数据
sudo rsync -av /var/lib/docker /data/docker
# 4. 备份旧目录
sudo mv /var/lib/docker /var/lib/docker.bak
# 5. 创建软链接
sudo ln -s /data/docker /var/lib/docker
# 6. 启动Docker
sudo systemctl start docker

验证:执行 docker info,查看 Docker Root Dir 字段,显示新目录即为成功。

七、Docker 常用基础命令(入门必备)

1. 服务管理命令

bash 复制代码
# 启动Docker
sudo systemctl start docker
# 停止Docker
sudo systemctl stop docker
# 重启Docker
sudo systemctl restart docker
# 查看Docker状态
sudo systemctl status docker
# 设置开机自启
sudo systemctl enable docker
# 取消开机自启
sudo systemctl disable docker

2. 镜像操作命令

bash 复制代码
# 拉取镜像
docker pull 镜像名:版本号
# 查看本地镜像
docker images
# 删除镜像
docker rmi 镜像ID/镜像名
# 搜索镜像
docker search 镜像名

3. 容器操作命令

bash 复制代码
# 运行容器
docker run -d --name 容器名 -p 主机端口:容器端口 镜像名
# 查看运行中容器
docker ps
# 查看所有容器(含停止)
docker ps -a
# 停止容器
docker stop 容器ID/容器名
# 启动容器
docker start 容器ID/容器名
# 删除容器
docker rm 容器ID/容器名
# 进入容器
docker exec -it 容器ID /bin/bash

八、常见问题与排错

1. 问题 1:dnf config-manager --remove-repo 报错

报错信息dnf config-manager: error: unrecognized arguments: --remove-repo原因 :CentOS 8+ 的 DNF 工具不支持 --remove-repo 参数,该参数仅适用于旧版 YUM。解决方案:直接删除源配置文件:

bash 复制代码
sudo rm -f /etc/yum.repos.d/docker-ce.repo

2. 问题 2:Docker 启动失败,提示端口冲突

报错信息Error starting daemon: listen tcp 0.0.0.0:2375: bind: address already in use原因 :端口 2375 被其他进程占用(常见为 podman)。解决方案

bash 复制代码
# 卸载podman
sudo dnf remove -y podman
# 重启Docker
sudo systemctl restart docker

3. 问题 3:镜像拉取超时、速度慢

原因 :未配置国内镜像加速器,使用官方源访问海外服务器超时。解决方案:按本文「配置阿里云镜像加速器」步骤操作,配置国内加速源。

4. 问题 4:普通用户执行 docker 命令报错权限不足

报错信息permission denied while trying to connect to the Docker daemon socket原因 :用户未加入 docker 用户组。解决方案:执行免 sudo 配置命令:

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker

5. 问题 5:Docker 容器日志占满磁盘

原因 :未配置日志限制,容器日志无限增长。解决方案 :按本文「配置阿里云镜像加速器」步骤,在 daemon.json 中添加日志限制配置。


九、总结

本文档完整覆盖了 CentOS 系统 Docker 从环境准备、源配置、安装、启动、优化到排错的全流程。

相关推荐
明日清晨2 小时前
python扫码登录dy
开发语言·python
我是唐青枫2 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net
JJay.2 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
bazhange2 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
jinanwuhuaguo2 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
froginwe112 小时前
CSS 创建:从基础到高级
开发语言
人工干智能2 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
小敬爱吃饭2 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
左手厨刀右手茼蒿2 小时前
Linux 内核中的块设备驱动:从原理到实践
linux·嵌入式·系统内核