Docker 容器环境安装配置指南 (CentOS Stream 9)

本文档详细记录了在 CentOS Stream 9 系统上安装配置 Docker Engine 的完整流程,旨在帮助用户快速搭建稳定、高效的容器运行环境。

前置要求:

  • 操作系统:CentOS Stream 9 / RHEL 9 (x86_64)
  • 用户权限:具有 sudo 权限的用户(本文档示例使用 mirukj,密码 miru2025)
  • 网络连接:需能够访问外网或配置好的内网镜像源

1. 安装前准备

1.1 卸载旧版本(如有)

为了防止版本冲突,首先卸载系统可能存在的旧版本 Docker。

bash 复制代码
sudo dnf remove -y docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

1.2 安装必要工具

安装 yum-utils 以便管理软件源。

bash 复制代码
sudo dnf install -y yum-utils

2. 配置软件源

由于官方源在国内访问可能不稳定,推荐使用阿里云镜像源以提升下载速度。

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

3. 安装 Docker Engine

安装最新版本的 Docker Engine、CLI 客户端、Containerd 运行时以及构建和编排插件。

bash 复制代码
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. 服务配置与优化

4.1 配置镜像加速器

为了解决 Docker Hub 拉取镜像慢的问题,建议配置国内镜像加速器。

创建或编辑 /etc/docker/daemon.json 文件:

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live"
  ]
}
EOF

注:镜像源地址可能会随时间变化,如失效请更换为其他可用源。

4.2 启动服务并设置开机自启

bash 复制代码
# 启动 Docker 服务
sudo systemctl start docker

# 设置开机自动启动
sudo systemctl enable docker

4.3 防火墙配置(可选)

如果系统开启了 firewalld,为了保证容器能够正常访问外网(NAT 转发),建议开启 masquerade 功能。

bash 复制代码
sudo firewall-cmd --permanent --zone=public --add-masquerade
sudo firewall-cmd --reload

5. 验证安装

运行官方提供的 hello-world 测试镜像,验证 Docker 是否安装成功且能正常拉取运行容器。

bash 复制代码
sudo docker run hello-world

预期输出 :

看到 "Hello from Docker!" 字样即表示安装成功。

6. 后续配置建议(安全与便捷)

6.1 免 sudo 使用 Docker(可选)

默认情况下,运行 Docker 命令需要 root 权限。为了方便使用,可以将当前用户添加到 docker 用户组。

警告 :docker 用户组具有等同于 root 的权限,请谨慎授予。

bash 复制代码
# 创建 docker 组(通常安装时已自动创建)
sudo groupadd docker

# 将当前用户加入组
sudo usermod -aG docker $USER

# 更新用户组变更(或者重新登录)
newgrp docker

配置完成后,即可直接运行 docker run hello-world 而无需 sudo。

7. 常见问题排查

  • 问题:无法拉取镜像 (Timeout)
    • 排查 :检查 daemon.json 中的镜像源是否可用,尝试 ping 镜像源域名。
  • 问题:权限拒绝 (Permission denied)
    • 排查 :确认是否使用了 sudo,或用户是否已正确加入 docker 组。
  • 问题:容器无法联网
    • 排查:检查防火墙设置,确保开启了 IP 转发和 masquerade。

8. 卸载 Docker

如果需要彻底移除 Docker,请执行以下命令:

bash 复制代码
# 停止服务
sudo systemctl stop docker

# 卸载软件包
sudo dnf remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 删除数据目录(慎用,会删除所有镜像和容器数据)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
相关推荐
张张123y41 分钟前
后端第九课:部署上线(把你的 FastAPI 后端真正跑起来给别人用)
python·docker·部署·fastapi
闲云自留地3 小时前
CentOS 搬 Ubuntu 24.04:yum 变 apt、防火墙、SELinux、root 全差异避坑
linux·ubuntu·centos
AscendKing4 小时前
Docker Compose 一键部署 SkyWalking 10.2.0 + Elasticsearch8.11,分布式链路追踪完整实战
elasticsearch·docker·skywalking·链路追踪·微服务监控
励志师code5 小时前
Kubernetes 集群节点生命周期管理实战:从扩容、调度管控到证书续期
运维·docker·容器·kubernetes·gpu算力·kubelet
闲云自留地6 小时前
Kubernetes 安装保姆级:关 swap、装 containerd、init 集群、calico 一篇通
容器·贪心算法·kubernetes
木雷坞6 小时前
Docker Compose部署Metabase:应用库隔离与日期筛选看板
运维·docker·容器
怒放的生命19916 小时前
前端项目 Docker 打包实操指南
前端·docker·容器
tedcloud1236 小时前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
古城小栈6 小时前
Docker Compose 云原生的底座
docker·云原生·容器
卜锦元6 小时前
Docker Compose 部署 Nginx 1.30.6 完整指南
nginx·docker·容器