RockyLinux 9.7安装Docker完整指南与优化配置
2026/8/8 5:48:08 网站建设 项目流程

1. RockyLinux 9.7安装Docker全攻略

作为RHEL的完美替代品,RockyLinux 9.7在企业级应用中越来越受欢迎。最近在部署一套新的CI/CD环境时,我选择了RockyLinux 9.7作为基础系统,并需要在其上安装Docker。整个过程看似简单,但实际遇到了不少坑,特别是与SELinux和firewalld的兼容性问题。本文将分享从系统准备到Docker稳定运行的完整过程,包含我在生产环境中验证过的配置方案。

2. 环境准备与系统检查

2.1 系统基础配置确认

在开始安装前,必须确保系统满足Docker运行的基本要求。执行以下命令检查内核版本和系统架构:

uname -r # 需要3.10或更高版本 cat /etc/redhat-release # 确认是RockyLinux 9.7 lscpu # 检查CPU架构(x86_64/aarch64)

注意:如果使用虚拟机,务必在BIOS中开启虚拟化支持(VT-x/AMD-V)。我在KVM环境中曾因未开启导致docker.service启动失败。

2.2 必要的依赖安装

RockyLinux 9.7默认的软件仓库可能不包含最新版Docker,需要先添加必要的仓库:

sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

安装基础工具链:

sudo dnf install -y device-mapper-persistent-data lvm2 git curl wget

3. Docker安装详细步骤

3.1 官方仓库安装Docker CE

执行以下命令安装Docker社区版及其组件:

sudo dnf makecache sudo dnf install -y docker-ce docker-ce-cli containerd.io

安装完成后验证版本:

docker --version # 应显示20.10.x或更高 containerd --version # 应显示1.6.x或更高

3.2 关键配置调整

编辑daemon.json配置文件(首次需要创建):

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF

经验:在RockyLinux 9.7上必须设置"storage-driver":"overlay2",否则会遇到存储驱动不兼容的警告。

4. 系统集成与权限配置

4.1 SELinux与Firewalld整合

RockyLinux默认启用SELinux,需要特别处理:

sudo setenforce 0 # 临时设置为permissive模式 sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

配置firewalld放行Docker流量:

sudo firewall-cmd --permanent --zone=public --add-masquerade sudo firewall-cmd --permanent --zone=public --add-port=2376/tcp sudo firewall-cmd --permanent --zone=public --add-port=2377/tcp sudo firewall-cmd --permanent --zone=public --add-port=7946/tcp sudo firewall-cmd --permanent --zone=public --add-port=7946/udp sudo firewall-cmd --permanent --zone=public --add-port=4789/udp sudo firewall-cmd --reload

4.2 用户组与权限管理

将当前用户加入docker组避免sudo:

sudo usermod -aG docker $USER newgrp docker # 立即生效

验证非root用户权限:

docker run hello-world # 应能正常执行

5. 服务管理与优化

5.1 系统服务配置

启用并启动Docker服务:

sudo systemctl enable --now docker sudo systemctl status docker # 检查状态

配置日志轮转(防止日志爆满):

sudo tee /etc/logrotate.d/docker <<EOF /var/lib/docker/containers/*/*.log { rotate 7 daily compress delaycompress missingok copytruncate } EOF

5.2 性能调优建议

修改systemd服务参数提升性能:

sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit nofile=102400:102400 EOF

应用配置并重启服务:

sudo systemctl daemon-reload sudo systemctl restart docker

6. 常见问题解决方案

6.1 虚拟化支持问题

如果遇到"virtualization support not detected"错误:

  1. 确认BIOS中已开启VT-x/AMD-V
  2. 检查内核模块加载:
    lsmod | grep kvm
  3. 对于物理机,可能需要安装kvm驱动:
    sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils sudo systemctl enable --now libvirtd

6.2 存储驱动问题

当看到"storage-driver"相关警告时:

  1. 确认/etc/docker/daemon.json配置正确
  2. 检查当前存储驱动:
    docker info | grep "Storage Driver"
  3. 如果使用devicemapper,建议改用overlay2:
    sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

6.3 镜像加速配置

为提升国内拉取镜像速度,建议配置镜像加速器:

sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn" ] } EOF sudo systemctl restart docker

7. 生产环境验证

7.1 基础功能测试

运行测试容器验证基础功能:

docker run -it --rm alpine sh -c "echo 'Hello from Docker!'" docker run -d -p 80:80 nginx # 测试端口映射 curl localhost # 应看到Nginx欢迎页

7.2 持久化存储验证

测试卷挂载功能:

mkdir ~/test-volume docker run -v ~/test-volume:/data alpine sh -c "echo 'persistent data' > /data/test.txt" cat ~/test-volume/test.txt # 应看到写入内容

7.3 网络连通性检查

验证容器间通信:

docker network create test-net docker run -d --name web --network test-net nginx docker run -it --rm --network test-net alpine wget -O- web

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询