CentOS上安装和配置Docker与Docker Compose的详细指南

news2024/11/28 18:51:58

引言

大家好,我是小阳,在这篇文章中,我将带大家一步步完成在CentOS系统上安装和配置Docker与Docker Compose的过程。通过这篇详细的指南,你将能够轻松配置Docker环境,并在日常开发和部署中享受其带来的便利。

原文阅读:【巨人肩膀社区·专栏·分享】02 CentOS上安装和配置Docker与Docker Compose的详细指南

准备工作

在开始之前,请确保你拥有一台已安装CentOS操作系统的服务器,并具备sudo权限。本文中的所有命令都需要以root用户或具有sudo权限的用户身份执行。

关于安装docker,我写了一个一键安装脚本,这样大大节约大家的的时间和精力,但是大家还是有必要了解脚本里面这些安装步骤。
下面是关于脚本里面这些步骤详解。03 Docker一键安装脚本信息

0.脚本执行

将脚本上传到服务器根目录,然后执行以下指令
chmod +x setup_docker.sh
./setup_docker.sh
这个脚本会自动执行所有步骤,确保你不需要手动输入每一条命令。

image.png

image.png

image.png

出现这个说明脚本执行成功了

image.png

1. 检查并安装必要命令

首先,我们需要确保系统中已经安装了curlyumsudosystemctl命令。如果没有安装这些命令,请使用以下命令进行安装:

bash 复制代码 

sudo yum install -y curl sudo yum-utils systemd

2. 检查网络连接

在安装过程中,稳定的网络连接是至关重要的。我们可以使用curl命令检查网络连接状态:

bash 复制代码 

echo "检查网络连接..."
curl -s --head https://www.baidu.com | head -n 1 | grep "200\|301\|302" >/dev/null || {
    echo "无法连接到互联网,请检查网络连接。"
    exit 1
}

以上命令会尝试访问百度首页,并检查返回的HTTP状态码是否为200、301或302。如果无法连接到互联网,脚本会终止执行。

3. 打印当前内核版本信息

了解当前系统的内核版本有助于确保系统与Docker的兼容性:

bash 复制代码 

echo "当前内核版本:"
uname -r

4. 备份现有的YUM源配置

在进行YUM源配置更改之前,备份现有的配置文件是一个良好的习惯。这样可以确保在出现问题时能够恢复原有配置:

bash 复制代码 

echo "备份现有的 yum 源配置..."
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup || {
    echo "备份 yum 源配置失败。正在终止。"
    exit 1
}

5. 更新YUM源为阿里云镜像

阿里云镜像源通常比官方源更快,更适合中国大陆的用户。我们可以使用以下命令更新YUM源:

bash 复制代码 

echo "更新 yum 源为阿里云镜像..."
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo || {
    echo "更新 yum 源失败。正在终止。"
    exit 1
}

6. 清理和重新生成YUM缓存

更新YUM源后,需要清理旧缓存并生成新的缓存:

bash 复制代码 

echo "清理 yum 缓存..."
sudo yum clean all || {
    echo "清理 yum 缓存失败。正在终止。"
    exit 1
}
echo "重新生成 yum 缓存..."
sudo yum makecache || {
    echo "生成 yum 缓存失败。正在终止。"
    exit 1
}

7. 更新系统软件包

确保系统的所有软件包都是最新的:

bash 复制代码 

echo "更新系统软件包..."
sudo yum update -y || {
    echo "更新系统软件包失败。正在终止。"
    exit 1
}

8. 安装必要的软件包

Docker依赖于一些必要的软件包,需要先安装这些依赖:

bash 复制代码 

echo "安装必要的软件包..."
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 || {
    echo "安装必要的软件包失败。正在终止。"
    exit 1
}

9. 添加Docker CE仓库

我们需要添加Docker CE的仓库以便从中安装Docker:

bash 复制代码 

echo "添加 Docker CE 仓库..."
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo || {
    echo "添加 Docker CE 仓库失败。正在终止。"
    exit 1
}

将Docker CE仓库的下载地址替换为阿里云镜像源:

bash 复制代码 

echo "替换 Docker CE 仓库的下载地址为阿里云镜像..."
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo || {
    echo "替换 Docker CE 仓库下载地址失败。正在终止。"
    exit 1
}

10. 安装Docker CE

现在,我们可以安装Docker CE了:

bash 复制代码 

echo "安装 Docker CE..."
sudo yum install -y docker-ce-25.0.5 docker-ce-cli-25.0.5 containerd.io || {
    echo "安装 Docker CE 失败。正在终止。"
    exit 1
}

11. 下载并设置Docker Compose

Docker Compose是一个用于定义和运行多容器Docker应用的工具。我们可以使用以下命令下载并设置Docker Compose:

bash 复制代码 

echo "下载 Docker Compose..."
sudo curl -L https://gitee.com/fustack/docker-compose/releases/download/v2.24.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose || {
    echo "下载 Docker Compose 失败。正在终止。"
    exit 1
}
echo "赋予 Docker Compose 执行权限..."
sudo chmod +x /usr/local/bin/docker-compose || {
    echo "赋予 Docker Compose 执行权限失败。正在终止。"
    exit 1
}

12. 启动和设置Docker服务

安装完成后,需要启动Docker服务并设置其开机启动:

bash 复制代码 

echo "启动 Docker 服务..."
sudo systemctl start docker || {
    echo "启动 Docker 服务失败。正在终止。"
    exit 1
}
echo "设置 Docker 服务开机启动..."
sudo systemctl enable docker || {
    echo "设置 Docker 服务开机启动失败。正在终止。"
    exit 1
}
echo "重启 Docker 服务..."
sudo systemctl restart docker || {
    echo "重启 Docker 服务失败。正在终止。"
    exit 1
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2060194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一行一行代码带你阅读,xxljob, 若依vue基础项目,若依vue-plus 项目,实战项目的 视频课程

目录 1 介绍2 地址 1 介绍 本人自己录制的一行一行代码解释源码的课程,适合小白,么有阅读过源码,或者不知道咋阅读源码的小伙伴。 本课程 有,视频,笔记,加了注释的源码 2 地址 1 实战课程 本课程 有&am…

拓客工具,助你多维度筛选客源!

随着大数据与人工智能技术的飞速发展,企业拓客的方式也迎来了前所未有的变革。在这里将分享如何利用拓客工具,在任意行业中精实现高效拓客。 一、高级搜索:最新企业! 传统的客户开发方式往往依赖于广撒网式的营销手段,…

Linux系统-打包重定向/管道符/进程shell脚本

打包、解包、压缩、解压缩命令 统一使用tar命令,根据不同的参数完成不同的操作 语法:tar 参数 打包后的文件(只能是一个) 需要打包的文件或目录(可以是多个,空格分开即可) 常见的打包压缩格式: 打包后的文件后缀名:…

Linux——网络(1)

一、IPC(进程间通信方式) IPC:Inter Process Communication 共享内存(最高效的进程间通信方式) 虚拟地址 mmu(memory management unit ) 共享内存: 1.是一块,内核预留的空间 2.最高效的…

攻击手法罕见!ESET披露最新网络钓鱼活动,专门针对Android、iPhone用户

ESET 研究人员发现了一种罕见的网络钓鱼活动,专门针对 Android 和 iPhone 用户。他们分析了一个在野外观察到的案例,该案例主要是针对一家著名的捷克银行的客户。 值得注意的是这种攻击主要是从第三方网站安装钓鱼应用程序,而无需用户主动安…

东方博宜OJ 训练计划:前缀和、差分 习题集

前缀和、差分 听到这个名字,大家一定感觉不陌生吧,毕竟学过动态规划的人大部分 都知道,那我就简单介绍一下,并奉上习题供大家参考! 题目描述我就不放了,根据题号参见 东方博宜OJ 东方博宜OJ 网址&#xf…

【2024国赛速成系列】建模手三天必成计划

内容来自https://www.bilibili.com/video/BV14M4m1y77t 目录 一、第一天 1、常见模型分类 2、两大学习神器 (1)SPSSPRO (2)ChatGPT 二、第二天 三、第三天 一、第一天 建模手在最开始需要了解模型分类及国赛常见模型的用法…

专利有哪几种类型?

专利有哪几种类型?

高并发登录模块

1. 配置⼀主⼆从mysql57 1. mycat对mysql8不完全⽀持 2. mysql8主从问题不⼤ get_pub_key1 1. gtids事务复制 2. 删除/etc/my.cnf 3. 同步data⽂件需要先停⽤mysql服务,删除data⽬录中的 auto.cnf 4. gtid模式以及经典模式都需要锁表 flush tables with read …

击破传统跨境电商客服系统痛点:中关村科金如何帮助品牌实现跨境电商业务开拓?

有家总部位于中国、销售市场主要集中在北美的知名眼镜品牌,主要从事时尚眼镜的设计、生产和销售,近年跨境电商业务规模不断扩展,现有的客服体系却“落伍”了,难以适应当前阶段公司的发展要求。 因此希望与中关村科金合作&#xf…

【Harmony OS 4.0】生命周期

1. 自定义组件生命周期 自定义组件:Component 装饰的UI单元,可以组合多个系统组件实现UI的复用。 组件生命周期,即一般用Component装饰的自定义组件的生命周期,提供以下生命周期接口: 2.1 aboutToAppear:组…

8个我平时每天都会看的网站,涵盖办公、娱乐、学习等

分享8个我平时每天都会看的网站,涵盖办公、娱乐、学习等多种类别,试过就知道有多好用! 1、MyFreeMP3 tools.liumingye.cn/music/#/ 一个可以免费听歌的平台,不用充会员,里面收录了大多数的国内外知名流行歌手、乐队的…

【C++初阶】一篇手撕vector类

vector类 一&#xff0c;vector的介绍二&#xff0c;vector的使用2.1 vector的定义2.2 vector iterator2.3 vector空间增长问题2.4 vector增删查改2.5 vector<char> 可以替代 string 嘛&#xff1f; 一&#xff0c;vector的介绍 vector 是表示可变大小数组序列容器。就像…

[数据集][目标检测]手钳检测数据集VOC+YOLO格式141张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;141 标注数量(xml文件个数)&#xff1a;141 标注数量(txt文件个数)&#xff1a;141 标注类别…

加载dvb文件出错解决方案

1、在c: \Windows\System32文件夹下&#xff0c;放入fm2.0.dll&#xff08;此文件已资源绑定在本文章&#xff09;文件 2、若还是不行&#xff0c;可尝试&#xff1a; 3、或重装CAD vba vba下载官网地址&#xff1a;下载适用于 Inventor 的 Microsoft VBA 模块 https://www…

Spring AI集成Ollama+llava:7b:实战探索大模型的多模态应用

前面的文章介绍的基本上都是单一数据格式的输入处理&#xff0c;比如输入文本输出文本的Chat模型、输入文本输出图片的图片模型、输入文本输出音频的模型等。本篇文章将介绍如何实现同时处理多种类型的数据格式&#xff1f; 什么是多模态 多模态是指模型同时理解和处理来自各种…

初识指针の学习笔记

目录 1>>前言 2>>内存和地址 3>>指针变量和地址 3.1取地址和解引用 3.2>>指针类型是什么&#xff1f; 3.3>>指针变量占用空间 4>>指针变量类型的意义 4.1>>指针的解引用 4.2>>指针-整数 5>>关于指针的运算 5…

「OC」暑假第三周——天气预报的仿写

「OC」暑假第三周——天气预报的仿写 文章目录 「OC」暑假第三周——天气预报的仿写写在前面预览UItableView嵌套UICollectionView毛玻璃效果SVGKit库的使用简单的动画实现主页之中详情页的编写总结 写在前面 天气预报作为暑假最后的一个项目&#xff0c;算得上我觉得有点用的…

西门子PLC跟汇川H5U系列PLC标签方式以太网通讯的快速实现方案

PLC通讯智能网关IGT-DSER模块支持汇川、西门子、三菱、欧姆龙、罗克韦尔AB、GE等各种品牌的PLC之间通讯&#xff0c;同时也支持PLC与Modbus协议的变频器、智能仪表等设备通讯。网关有多个网口、串口&#xff0c;也可选择WIFI无线通讯。PLC内无需编程开发&#xff0c;在智能网关…

金九银十秋招大模型岗位攻略来了,已收offer,非常详细收藏我这一篇就够了

秋季招聘季节是求职者寻找新机会的重要时期&#xff0c;特别是对于想要进入大模型领域的专业人士来说。以下是一份大模型学习攻略和应聘攻略&#xff0c;帮助你为秋季招聘做好准备&#xff1a; 大模型学习攻略 理解大模型基础 学习AI基础&#xff1a;了解机器学习、深度学习的…