【超详细】CentOS系统Docker安装与配置一键脚本(附镜像加速配置)

【超详细】CentOS系统Docker安装与配置一键脚本(附镜像加速配置)

在Linux系统中部署Docker是开发者和运维人员的常用操作,本文将详细介绍如何在CentOS系统中通过脚本快速安装Docker,并配置国内镜像加速器以提升镜像拉取速度。全程实操,新手也能轻松上手!

一、环境说明

  • 操作系统:CentOS 7(CentOS 8也可参考,部分命令需微调)
  • 前提条件:系统已联网,建议使用root用户操作(非root用户需添加sudo权限)
  • 目标:安装Docker CE(社区版),配置国内镜像源,实现容器快速部署

二、安装前准备

在安装Docker前,我们需要做一些基础配置,包括关闭防火墙、禁用SELinux、配置国内yum源等,这些操作能减少后续安装过程中的兼容性问题。

三、详细安装步骤

步骤1:关闭防火墙与SELinux

CentOS默认启用的防火墙和SELinux可能会限制Docker的网络通信,建议临时关闭(生产环境可根据需求配置规则):

bash 复制代码
# 停止并禁用firewalld防火墙
systemctl stop firewalld && systemctl disable firewalld

# 临时禁用SELinux(立即生效)
setenforce 0

# 永久禁用SELinux(需重启生效,可选)
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

步骤2:配置国内yum源

CentOS默认yum源在国内访问速度较慢,替换为阿里云源可大幅提升软件包下载速度:

  1. 备份原有yum源:

    bash 复制代码
    mkdir -p /media/yum.repos.d.backup
    mv /etc/yum.repos.d/* /media/yum.repos.d.backup 2>/dev/null
  2. 创建阿里云CentOS源配置文件/etc/yum.repos.d/centos.repo,内容如下:

    ini 复制代码
    [base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    # 已省略updates、extras等其他配置(完整内容见下文脚本)

步骤3:安装Docker依赖

Docker运行需要一些系统工具支持,通过yum安装即可:

bash 复制代码
# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken

步骤4:配置Docker源并安装Docker CE

  1. 添加Docker官方源和阿里云Docker源(优先使用阿里云源提升速度):

    bash 复制代码
    # 添加Docker官方源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 添加阿里云Docker源(推荐)
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 将默认源替换为阿里云源
    sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
  2. 安装Docker CE:

    bash 复制代码
    # 刷新yum缓存
    yum makecache fast
    
    # 安装Docker
    yum install docker-ce -y

步骤5:配置Docker镜像加速器

国内拉取Docker Hub镜像速度较慢,配置国内镜像加速器可解决此问题。常用的加速器包括阿里云、网易、华为云等。

  1. 创建配置文件/etc/docker/daemon.json

    bash 复制代码
    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json << EOF
    {
        "registry-mirrors": [
            "https://hub-mirror.c.163.com",
            "https://mirror.baidubce.com",
            "https://docker.m.daocloud.io",
            "https://mirror.aliyuncs.com",
            "https://docker.mirrors.ustc.edu.cn"
        ]
    }
    EOF

    (注:上述列表可根据实际访问速度调整,建议保留2-3个常用加速器)

步骤6:启动Docker并验证安装

bash 复制代码
# 重载系统服务配置
systemctl daemon-reload

# 启动Docker并设置开机自启
systemctl start docker && systemctl enable docker

# 验证Docker是否安装成功
docker run --rm hello-world

如果输出Hello from Docker!相关信息,说明Docker安装成功!

四、一键安装脚本

为了简化操作,我将上述步骤整合为一个一键脚本,直接复制执行即可:

bash 复制代码
#!/bin/bash
# Docker一键安装脚本(CentOS版)

# 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
echo "防火墙已关闭"

# 禁用SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
echo "SELinux已禁用"

# 备份并替换yum源
mkdir -p /media/yum.repos.d.backup
mv /etc/yum.repos.d/* /media/yum.repos.d.backup 2>/dev/null
cat > /etc/yum.repos.d/centos.repo << EOF
[base]
name=CentOS-\$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/\$releasever/os/\$basearch/
        http://mirrors.aliyuncs.com/centos/\$releasever/os/\$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/\$releasever/os/\$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-\$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/\$releasever/updates/\$basearch/
        http://mirrors.aliyuncs.com/centos/\$releasever/updates/\$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/\$releasever/updates/\$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-\$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/
        http://mirrors.aliyuncs.com/centos/\$releasever/extras/\$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/\$releasever/extras/\$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
EOF
echo "yum源已替换为阿里云"

# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
echo "依赖包安装完成"

# 配置Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
echo "Docker源配置完成"

# 安装Docker
yum install docker-ce -y
echo "Docker安装完成"

# 配置镜像加速器
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://mirror.aliyuncs.com"
    ]
}
EOF
echo "镜像加速器配置完成"

# 启动Docker
systemctl daemon-reload
systemctl start docker && systemctl enable docker
echo "Docker已启动并设置开机自启"

# 验证安装
docker run --rm hello-world
echo "Docker安装验证完成,如需使用请直接执行docker命令"

五、使用说明

  1. 将脚本保存为install_docker.sh
  2. 赋予执行权限:chmod +x install_docker.sh
  3. 执行脚本:./install_docker.sh
  4. 脚本执行过程中会自动输出每一步的操作结果,耐心等待即可。

六、注意事项

  1. 脚本仅适用于CentOS系统,Ubuntu/Debian系统需修改对应命令;
  2. 生产环境中建议不要完全关闭防火墙,而是配置Docker所需的端口规则;
  3. 镜像加速器列表可根据实际网络情况增删,优先选择延迟低的节点;
  4. 若安装失败,可检查网络连接或重新执行脚本(脚本支持重复执行)。

通过以上步骤,我们可以快速在CentOS系统中部署Docker并优化配置,后续即可通过docker pulldocker run等命令管理容器。如果有任何问题,欢迎在评论区留言交流!

#Docker #CentOS #Linux #容器 #运维教程

相关推荐
ltl14 小时前
大多数「无锁」代码其实不是无锁的
linux
ltl14 小时前
Linux 内核的内存屏障:一个让我调了三天的 bug
linux
Lonely 净土16 小时前
Rocky Linux 安装教程
linux·运维·服务器
营养充电站17 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
小义_19 小时前
K8s 全网高频常用命令大全
docker·容器·kubernetes
李白你好20 小时前
Windows 离线 Linux 提权辅助查询工具
linux
Lust Dusk21 小时前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
ShineWinsu21 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
千千寰宇21 小时前
[Linux/Ollama] Termux : 一款运行在 Android 平台上的开源终端模拟器与 Linux 环境应用、支持在手机上基于Ollama部署LLM
linux
lingran__1 天前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令