centos 8 中安装Docker

注:本次样式安装使用的是centos8  操作系统。

1、镜像下载

具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可!

1、CentOS官方下载地址:https://vault.centos.org/

2、阿里云开源镜像站下载:centos安装包下载_开源镜像站-阿里云

3、网易开源镜像下载:Index of /centos/

2、Docker 简介

Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖环境打包成一个可移植的容器。这些容器可以在任何支持 Docker 的机器上运行,从而解决了“在我机器上可以运行”的问题。Docker 提供了一种轻量级的虚拟化方式,使得应用程序的部署、管理和扩展变得更加高效。

 2.1、Docker 的主要组成部分:

  1. Docker Engine:Docker 的核心组件,负责构建、运行和管理容器。
  2. Docker Hub:一个公共的容器注册中心,开发者可以在这里上传和分享容器镜像。
  3. Docker Compose:用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务。

2.2、Docker 的优势:

  • 快速部署:借助容器,应用程序可以迅速从开发环境迁移到生产环境。
  • 资源隔离:每个容器都有独立的运行环境,确保不同应用之间不会互相干扰。
  • 可扩展性:可以轻松地创建多个相同的容器实例,以应对高并发需求。
  • 一致性:无论在开发、测试还是生产环境中,运行的都是相同的容器,减少了环境差异带来的问题。

2.3、Docker 在 Python 自动化测试中的作用

  1. 环境一致性:通过 Docker,可以确保测试环境与生产环境一致,避免因环境差异导致的测试失败。

  2. 依赖管理:将所有依赖项打包在容器内,避免了在本地机器上进行复杂的环境配置和依赖管理。

  3. 快速启动与停止:测试团队可以快速启动和停止容器,从而节省时间,特别是在进行多次测试时。

  4. 并行测试:Docker 可以轻松地创建多个容器实例,使得测试可以并行进行,提高测试效率。

  5. 易于集成:Docker 容器可以与 CI/CD 工具(如 Jenkins、GitLab CI 等)无缝集成,自动化测试流程。

  6. 回归测试:通过 Docker,开发团队可以轻松地回滚到之前的测试环境,进行回归测试,确保新代码的正确性。

3、开始安装

安装之前先ping www.baidu.com 看看自己的虚拟机是否能够联网,因为在安装的时候需要联网下载很多包和依赖。联网必不可少。

3.1、备份

切换到/etc/yum.repos.d/目录,查看当前目录下的文件

cd /etc/yum.repos.d/ 
ls 

执行结果如下:

创建一个文件夹用来备份当前目录下的所有内容

mkdir  bf

将源文件移动至备份文件夹

mv CentOS-* bf

3.2、下载安装镜像源

使用wget命令下载并替换镜像源,我这里使用的源为阿里云镜像:

wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo

执行结果如下:

注意,在这里http://mirrors.cloud.aliyuncs.com需要替换为http://mirrors.aliyun.com,因为官网提供的命令并没替换完,而且官网命令针对的是具有公网访问能力的ECS实例,所以这里各位如果报错的话,可以使用一下命令:

sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g'  /etc/yum.repos.d/Centos-vault-8.5.2111.repo 
sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g'  /etc/yum.repos.d/epel-archive-8.repo

执行如下:

3.3、清除原yum缓存建立新缓存

执行以下命令即可:

yum clean all && yum makecache

如果需要测试可以使用以下命令:

yum update -y   #后面跟一个你想要安装的包试试

3.4、更新系统

dnf update 命令用于更新系统中已安装的所有软件包。它是 DNF(Dandified YUM)的核心功能之一,主要作用包括:

  1. 软件包更新dnf update 会检查所有已安装软件包的最新版本,并自动下载和安装这些更新。这样可以确保系统中的软件保持最新状态,获得最新的功能和安全修复。

  2. 依赖关系管理:当某些软件包需要更新时,dnf 会自动处理相关的依赖关系,确保所有依赖的软件包都得到适当的更新。

  3. 安全更新:DNF 会提供有关安全更新的信息,通过 dnf update 可以确保系统安装了所有重要的安全补丁。

  4. 清理过时的软件包:在更新过程中,DNF 还可以自动删除那些不再需要的旧版本软件包,以节省磁盘空间。

  5. 持久化配置:DNF 允许用户通过配置文件定制更新行为,比如只更新特定的软件包,或定期自动更新。

  6. 插件支持:DNF 支持插件扩展功能,可以利用这些插件来增强更新过程的功能,例如记录更新日志或发送通知。

dnf update

注意:运行到这个需要各位输入y。确定下载。然后等待

OK,更新完成

3.4、安装依赖包

docker在运行的时候需要一些依赖包才能运行,

安装docker执行为什么要安装依赖包?

  1. 功能支持:Docker 需要特定的系统组件和库来实现容器化功能,如 containerdrunc 等,这些都是 Docker 的核心组件。

  2. 网络配置:Docker 使用特定的网络配置和协议来管理容器之间的通信,这需要相应的网络工具和库的支持。

  3. 存储驱动:为了高效管理容器数据,Docker 依赖于存储驱动(如 OverlayFS),这些驱动需要额外的依赖包来支持。

  4. 安全性:某些依赖包提供了安全功能,比如用户命名空间和其他安全策略的实现,确保容器的隔离性和安全性。

  5. 包管理器支持:在安装 Docker 时,包管理器(如 dnf 或 yum)会自动处理这些依赖关系,所以需要确保所有必要的包都已正确安装。

所以我们在安装之前需要先安装其运行的依赖包。执行一下命令即可!

dnf install -y dnf-utils device-mapper-persistent-data lvm2

命令和参数解释如下:

  1. dnf:这是一个现代化的包管理工具,替代了 YUM,用于在基于 RPM 的 Linux 发行版(如 CentOS、Fedora 等)上安装、更新和管理软件包。

  2. install:这是 DNF 的一个子命令,用于安装指定的软件包。

  3. -y:这是一个选项,表示在安装过程中自动回答 "yes",即所有提示会默认选择“Yes”。这使得安装过程无需人工干预,适合脚本化操作。

  4. dnf-utils:这是一个软件包,提供了一些有用的 DNF 工具和插件,帮助我们更好地管理软件包。

  5. device-mapper-persistent-data:这个软件包为设备映射器提供持久化的存储支持,允许在容器和卷管理中使用持久化的存储特性,这是 Docker 和 LVM 等技术所需要的。

  6. lvm2:这是逻辑卷管理(LVM)的工具包,允许用户创建和管理逻辑卷,以便更灵活地管理磁盘空间,对 Docker 的存储管理和数据持久化也非常重要。

执行成功后如下图:

3.5、添加 Docker 的yum 仓库

首先这里,做下说明:

为什么在centosos8中安装docker时需要建立docker的yum库?

  1. 获取最新软件包:Docker 的 YUM 仓库包含了 Docker 的最新版本及其依赖包。通过添加这个仓库,用户能够确保安装的是最新稳定版本,而不是系统默认仓库中的过时版本。

  2. 依赖管理:Docker 的 YUM 仓库自动处理软件包之间的依赖关系。安装 Docker 时,它会自动下载并安装所需的所有依赖包,简化了安装过程。

  3. 与系统兼容:Docker 的官方仓库提供的包是经过测试和验证的,确保与 CentOS 8 系统的兼容性,减少了因版本不一致导致的问题。

  4. 简化安装过程:通过使用 YUM 仓库,用户可以通过简单的命令(如 yum install docker-ce)轻松安装 Docker,而不需要手动下载和配置多个软件包。

  5. 安全更新:Docker 的 YUM 仓库会定期更新,包含安全补丁和改进。通过配置 YUM 仓库,用户可以轻松获取这些更新,保持系统安全。

我们目前使用的centos 8 系统,并没有属于docker的yum仓库,所以需要我们自己建立。

执行一下命令:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

命令和参数解释如下:

  1. config-manager:这是 DNF 的一个子命令,允许用户管理软件源的配置,包括添加、删除和修改软件源。

  2. --add-repo:这是一个选项,用于指定要添加的新软件源。

  3. https://download.docker.com/linux/centos/docker-ce.repo:这是要添加的 Docker Community Edition(Docker CE)的 YUM 仓库的 URL。这一仓库包含了 Docker 的最新版本及其依赖包,用户可以通过它来安装和更新 Docker。

执行完成后如下所示:

3.6、安装 Docker

yum install -y docker-ce --allowerasing

命令和参数解释如下:

  1. docker-ce:这是要安装的软件包的名称,表示 Docker Community Edition。Docker CE 是 Docker 的开源版本,适用于开发和小型环境的使用。

  2. --allowerasing:这是一个选项,表示在安装过程中如果发现有冲突的软件包(即某些软件包版本不兼容),YUM 可以自动删除这些冲突的软件包,以便顺利安装目标软件包。这在处理版本冲突时非常有用,能够确保安装过程不会因为依赖冲突而中断。

安装一共6个ce文件,不要少哦!

安装完成

3.7、启动 Docker

systemctl start docker  或者  systemctl start docker.service

查看启动的状态

systemctl status docker   或者systemctl status docker.service

3.8、配置阿里云镜像加速

地址:https://cr.console.aliyun.com/

在配置之前我们可以先查看我们当前的docker源

需要自己注册一个一个阿里云的账号,我已经注册好了。直接搜索

进入以下界面

当然,这里的文档里面也已经 有对应的配置步骤,可以按照他的来,配置即可

执行一下代码:

vim /etc/docker/daemon.json

进入编辑器,添加一下内容


{"registry-mirrors": ["https://替换成你们自己的.aliyuncs.com"]
}

然后保存退出

修改完 Docker 配置之后,我们需要重新启动 Docker 服务,使配置生效:

systemctl restart docker

再次执行 docker info 命令来验证 Docker 源是否设置成功:

显示以上代码则说明配置完成。

3.9、查看版本是否安装成功

docker version  或者 docker

3.10、设置开机自启docker

systemctl enable docker

3.11、停止docker

systemctl stop docker

3.12、重启 Docker服务

systemctl restart docker

3.13、测试docker

docker run hello-world

此时我们也可以查看是否成功拉取hello-world镜像:

docker images

报错解决:

我们拉去镜像执行命令的时候,有时候会报这个错误

报了一个超时的错误,这个解决方式如下,

更换镜像源:

可以使用一下镜像源,具体的操作步骤可以按照我们刚开始配置加速镜像的步骤来。

1、sudo mkdir -p /etc/docker
2、sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
3、sudo systemctl daemon-reload
4、sudo systemctl restart docker
5、systemctl status docker

重启完docker之后检查registry mirror刚刚配置的加速地址是否成功

docker info

成功更换镜像加速地址

然后在继续执行

docker run hello-world

就可以了

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

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

相关文章

实现类似Excel的筛选

以下是在 DataGridView 中实现类似 Excel 下拉筛选功能的解决方案&#xff1a; 解决思路 为 DataGridView 的列添加 DataGridViewComboBoxColumn 类型的列&#xff0c;用于显示下拉筛选列表。为 DataGridView 的 ColumnHeaderMouseClick 事件添加处理程序&#xff0c;当用户点…

如何在 CentOS 中生成 CSR

在本教程中&#xff0c;我们将向您展示如何在CentOS 7和6中生成CSR。您可以直接从服务器生成 CSR。 只需按照以下步骤操作&#xff1a; 第 1 步&#xff1a;使用安全外壳 &#xff08;SSH&#xff09; 登录您的服务器 步骤 2&#xff1a;创建私钥和 CSR 文件 在提示符处键入以…

️ 如何将 Julia 包切换为本地开发版本?以 Reactant 为例

你是否正在开发一个 Julia 包&#xff0c;并希望将其从官方版本切换为本地开发版本&#xff1f;&#x1f914; 本文将手把手教你如何实现这一操作&#xff0c;并介绍一些实用技巧&#xff0c;让你的开发过程更加高效&#xff01;&#x1f680; &#x1f4cb; 准备工作 在开始之…

STM32-笔记40-BKP(备份寄存器)

一、什么是BKP&#xff08;备份寄存器&#xff09;&#xff1f; 备份寄存器是42个16位的寄存器&#xff0c;可用来存储84个字节的用户应用程序数据。他们处在备份域里&#xff0c;当VDD电源被切断&#xff0c;他们仍然由VBAT维持供电。当系统在待机模式下被唤醒&#xff0c;或…

深入了解 alias 命令

1、alias简介 在 Unix 和类 Unix 系统中&#xff0c;alias&#xff08;别名&#xff09;是一个非常实用的命令&#xff0c;它允许用户为常用的命令设置简短的别名&#xff0c;从而减少重复输入复杂命令的时间&#xff0c;提高工作效率。尤其是在命令行操作中&#xff0c;alias…

vue-cli项目配置使用unocss

在了解使用了Unocss后&#xff0c;就完全被它迷住了。接手过的所有项目都配置使用了它&#xff0c;包括一些旧项目&#xff0c;也跟同事分享了使用Unocss的便捷性。 这里分享一下旧项目如何配置和使用Unocss的&#xff0c;项目是vue2vue-cli构建的&#xff0c;node<20平常开…

新增文章分类功能

总说 过程参考黑马程序员SpringBoot3Vue3全套视频教程&#xff0c;springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 目录 总说 一、功能实现 1.1 Controller层 1.2 Service层 1.3 Impl层 1.4 Mapper层 1.5 测试接口 二、优化 2.1 2.2 一、…

MERN全栈脚手架(MongoDB、Express、React、Node)与Yeoman详解

MERN 全栈脚手架是一种用于快速构建基于 MongoDB、Express、React 和 Node.js 的全栈应用的框架或模板。它帮助开发者快速启动项目&#xff0c;减少了从零开始配置的时间。以下是关于 MERN 全栈脚手架的详细解析。 一、MERN 技术栈简介 MongoDB: 文档型数据库&#xff0c;用于…

知识图谱常见的主流图数据库

在知识图谱中&#xff0c;主流使用的图数据库包括以下几种&#xff1a; Neo4j&#xff1a;这是目前全球部署最广泛的图数据库之一&#xff0c;具有强大的查询性能和灵活的数据模型&#xff0c;适用于复杂关系数据的存储和查询。 JanusGraph&#xff1a;JanusGraph是一个开源的…

【进程与线程】进程的PID

什么是 PID&#xff1f; PID&#xff08;Process Identifier&#xff0c;进程标识符&#xff09;是操作系统为每个进程分配的一个唯一标识&#xff0c;用于标识系统中的每个进程。PID 是一个非负整数&#xff0c;通常从 1 开始分配&#xff1b;每个运行中的进程都有一个唯一的…

学习python类的总结

前言 之前天天看到有人用类相关的知识但是学校老师就是没讲过&#xff0c;然后再读了莫烦老师的讲解后&#xff0c;有了一定的了解&#xff0c;进行一个总结。 正文 类的意义 类其实就是正如他的名字一样&#xff0c;是一类事物&#xff08;其实叫做对象&#xff09;的总称…

JavaSE学习心得(多线程与网络编程篇)

多线程-网络编程 前言 多线程&JUC 多线程三种实现方式 第一种实现方式 第二种实现方式 第三种实现方式 常见成员方法 买票引发的安全问题 同步代码块 同步方法 Lock锁 生产者和消费者 常见方法 等待唤醒机制 练习 抢红包 抽奖 多线程统计并求最…

Pytorch基础教程:从零实现手写数字分类

文章目录 1.Pytorch简介2.理解tensor2.1 一维矩阵2.2 二维矩阵2.3 三维矩阵 3.创建tensor3.1 你可以直接从一个Python列表或NumPy数组创建一个tensor&#xff1a;3.2 创建特定形状的tensor3.3 创建三维tensor3.4 使用随机数填充tensor3.5 指定tensor的数据类型 4.tensor基本运算…

candb++ windows11运行报错,找不到mfc140.dll

解决问题记录 mfc140.dll下载 注意&#xff1a;放置位置别搞错了

​公专网一体5G工业路由器,智慧电网全链路加密监控管理

随着可再生能源的集成 电网调度策略复杂性增加 需更精细的并网管理以平衡供需 传统电力网络的通信基础落后 难以适应电力设施的广泛分布 和日益增长的管理维护需求 计讯物联5G公专网一体路由器 通过融合公网和专网的优势 有效解决了现代电网对于 高效、灵活和安全通信的需求 ↓…

【Linux】--- 进程的等待与替换

进程的等待与替换 一、进程等待1、进程等待的必要性2、获取子进程status3、进程等待的方法&#xff08;1&#xff09;wait&#xff08;&#xff09;函数&#xff08;2&#xff09;waitpid函数 4、多进程创建以及等待的代码模型5、非阻塞接口 轮询 二、进程替换1、替换原理2、替…

intel x99主板设置上电服务器自动启动

作者&#xff1a;吴业亮 博客&#xff1a;wuyeliang.blog.csdn.net 1、选择IntelRCStetup–>PCH state after G3 -->ON PCH state after G3&#xff1a;是指系统完全关闭电源的状态&#xff0c;此时主板上只有RTC&#xff08;实时时钟&#xff09;电源。这个选项决定了系…

机器学习-归一化,标准化

标准化&#xff08;Standardization&#xff09;是将数据按比例缩放&#xff0c;使其具有特定的统计特征&#xff0c;通常是将数据的均值调整为0&#xff0c;标准差调整为1。标准化是一种常见的数据预处理技术&#xff0c;特别是在进行机器学习时&#xff0c;通常会使用标准化来…

zerotier搭建虚拟局域网,自建planet

基于该开源项目 自建planet节点&#xff0c;更快速&#xff0c;更安全 本教程依据docker-zerotier-planet 项目文档书写&#xff0c;并以linux(centos 7)和windows作为示例&#xff0c;需要其他系统配置方法&#xff0c;可移步项目文档 一. 前置资源 具有外网ip的服务器 后面…

Spring Boot + MyBatis-Flex 配置 ProxySQL 的完整指南

✅ Spring Boot MyBatis-Flex 配置 ProxySQL 的完整指南 下面是一个详细的教程&#xff0c;指导您如何在 Spring Boot 项目中使用 MyBatis-Flex 配置 ProxySQL 进行 读写分离 和 主从同步 的数据库访问。 &#x1f3af; 目标 在 Spring Boot 中连接 ProxySQL。使用 MyBatis-…