【超详细】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 #容器 #运维教程

相关推荐
csdn_aspnet33 分钟前
在 Docker 上安装和配置 Kafka、选择用于部署 Kafka 的操作系统
docker·kafka
花嫁代二娃5 小时前
Linux:环境变量
linux
乌托邦的逃亡者6 小时前
Docker的/var/lib/docker/目录占用100%的处理方法
运维·docker·容器
OKUNP10 小时前
Docker高级管理--容器通信技术与数据持久化
docker·容器·php
l1x1n010 小时前
Vim 编辑器常用操作详解(新手快速上手指南)
linux·编辑器·vim
ajassi200011 小时前
开源 python 应用 开发(三)python语法介绍
linux·python·开源·自动化
o不ok!11 小时前
Linux面试问题-软件测试
linux·运维·服务器
DaxiaLeeSuper12 小时前
Prometheus+Grafana+node_exporter监控linux服务器资源的方案
linux·grafana·prometheus
尽兴-13 小时前
如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
linux·数据库·windows·sql·macos
kfepiza13 小时前
Netplan 中 bridges、bonds、ethernets、vlans 之间的关系 笔记250711
linux·tcp/ip·shell