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 的主要组成部分:
- Docker Engine:Docker 的核心组件,负责构建、运行和管理容器。
- Docker Hub:一个公共的容器注册中心,开发者可以在这里上传和分享容器镜像。
- Docker Compose:用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务。
2.2、Docker 的优势:
- 快速部署:借助容器,应用程序可以迅速从开发环境迁移到生产环境。
- 资源隔离:每个容器都有独立的运行环境,确保不同应用之间不会互相干扰。
- 可扩展性:可以轻松地创建多个相同的容器实例,以应对高并发需求。
- 一致性:无论在开发、测试还是生产环境中,运行的都是相同的容器,减少了环境差异带来的问题。
2.3、Docker 在 Python 自动化测试中的作用
环境一致性:通过 Docker,可以确保测试环境与生产环境一致,避免因环境差异导致的测试失败。
依赖管理:将所有依赖项打包在容器内,避免了在本地机器上进行复杂的环境配置和依赖管理。
快速启动与停止:测试团队可以快速启动和停止容器,从而节省时间,特别是在进行多次测试时。
并行测试:Docker 可以轻松地创建多个容器实例,使得测试可以并行进行,提高测试效率。
易于集成:Docker 容器可以与 CI/CD 工具(如 Jenkins、GitLab CI 等)无缝集成,自动化测试流程。
回归测试:通过 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)的核心功能之一,主要作用包括:
软件包更新:
dnf update
会检查所有已安装软件包的最新版本,并自动下载和安装这些更新。这样可以确保系统中的软件保持最新状态,获得最新的功能和安全修复。依赖关系管理:当某些软件包需要更新时,
dnf
会自动处理相关的依赖关系,确保所有依赖的软件包都得到适当的更新。安全更新:DNF 会提供有关安全更新的信息,通过
dnf update
可以确保系统安装了所有重要的安全补丁。清理过时的软件包:在更新过程中,DNF 还可以自动删除那些不再需要的旧版本软件包,以节省磁盘空间。
持久化配置:DNF 允许用户通过配置文件定制更新行为,比如只更新特定的软件包,或定期自动更新。
插件支持:DNF 支持插件扩展功能,可以利用这些插件来增强更新过程的功能,例如记录更新日志或发送通知。
dnf update
注意:运行到这个需要各位输入y。确定下载。然后等待
OK,更新完成
3.4、安装依赖包
docker在运行的时候需要一些依赖包才能运行,
安装docker执行为什么要安装依赖包?
功能支持:Docker 需要特定的系统组件和库来实现容器化功能,如
containerd
,runc
等,这些都是 Docker 的核心组件。网络配置:Docker 使用特定的网络配置和协议来管理容器之间的通信,这需要相应的网络工具和库的支持。
存储驱动:为了高效管理容器数据,Docker 依赖于存储驱动(如 OverlayFS),这些驱动需要额外的依赖包来支持。
安全性:某些依赖包提供了安全功能,比如用户命名空间和其他安全策略的实现,确保容器的隔离性和安全性。
包管理器支持:在安装 Docker 时,包管理器(如
dnf
或yum
)会自动处理这些依赖关系,所以需要确保所有必要的包都已正确安装。所以我们在安装之前需要先安装其运行的依赖包。执行一下命令即可!
dnf install -y dnf-utils device-mapper-persistent-data lvm2
命令和参数解释如下:
dnf:这是一个现代化的包管理工具,替代了 YUM,用于在基于 RPM 的 Linux 发行版(如 CentOS、Fedora 等)上安装、更新和管理软件包。
install:这是 DNF 的一个子命令,用于安装指定的软件包。
-y:这是一个选项,表示在安装过程中自动回答 "yes",即所有提示会默认选择“Yes”。这使得安装过程无需人工干预,适合脚本化操作。
dnf-utils:这是一个软件包,提供了一些有用的 DNF 工具和插件,帮助我们更好地管理软件包。
device-mapper-persistent-data:这个软件包为设备映射器提供持久化的存储支持,允许在容器和卷管理中使用持久化的存储特性,这是 Docker 和 LVM 等技术所需要的。
lvm2:这是逻辑卷管理(LVM)的工具包,允许用户创建和管理逻辑卷,以便更灵活地管理磁盘空间,对 Docker 的存储管理和数据持久化也非常重要。
执行成功后如下图:
3.5、添加 Docker 的yum 仓库
首先这里,做下说明:
为什么在centosos8中安装docker时需要建立docker的yum库?
获取最新软件包:Docker 的 YUM 仓库包含了 Docker 的最新版本及其依赖包。通过添加这个仓库,用户能够确保安装的是最新稳定版本,而不是系统默认仓库中的过时版本。
依赖管理:Docker 的 YUM 仓库自动处理软件包之间的依赖关系。安装 Docker 时,它会自动下载并安装所需的所有依赖包,简化了安装过程。
与系统兼容:Docker 的官方仓库提供的包是经过测试和验证的,确保与 CentOS 8 系统的兼容性,减少了因版本不一致导致的问题。
简化安装过程:通过使用 YUM 仓库,用户可以通过简单的命令(如
yum install docker-ce
)轻松安装 Docker,而不需要手动下载和配置多个软件包。安全更新:Docker 的 YUM 仓库会定期更新,包含安全补丁和改进。通过配置 YUM 仓库,用户可以轻松获取这些更新,保持系统安全。
我们目前使用的centos 8 系统,并没有属于docker的yum仓库,所以需要我们自己建立。
执行一下命令:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
命令和参数解释如下:
config-manager:这是 DNF 的一个子命令,允许用户管理软件源的配置,包括添加、删除和修改软件源。
--add-repo:这是一个选项,用于指定要添加的新软件源。
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
命令和参数解释如下:
docker-ce:这是要安装的软件包的名称,表示 Docker Community Edition。Docker CE 是 Docker 的开源版本,适用于开发和小型环境的使用。
--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
就可以了
相关文章:

centos 8 中安装Docker
注:本次样式安装使用的是centos8 操作系统。 1、镜像下载 具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可! 1、CentOS官方下载地址:https://vault.centos.org/ 2、阿里云开源镜像站下载:centos安装包…...
vscode vue 自动格式化
vscode vue 自动格式化 安装Prettier和Vetur插件 选择设置,并且转到编辑文件。增加如下内容。 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","[vue]": {"editor.defaultFor…...

Webpack 5 混淆插件terser-webpack-plugin生命周期作用时机和使用注意事项
参考案例代码 海南酷森科技有限公司/webpack-simple-demo Terser(简要的/简短的) 混淆依据 混淆是发生在代码已经 bundle 之后的事情 变量或者函数在被引用或赋值时才能被混淆 孤立的函数或者变量可能会被移除,但不会被混淆,要…...
MQTT(Message Queuing Telemetry Transport)协议
文章目录 一、MQTT 的原理1. 通信模型2. 核心概念3. 工作流程 二、MQTT 的优势1. 轻量级2. 异步通信3. 可靠性4. 实时性5. 支持断线重连6. 跨平台支持7. 安全性 三、MQTT 的典型应用场景四、与其他协议的对比 MQTT(Message Queuing Telemetry Transport)…...
【MySQL学习笔记】MySQL存储过程
存储过程 1、基础语法2、变量2.1 系统变量2.2 用户自定义变量2.3 局部变量 3、if 流程控制4、参数5、case 流程控制6、循环结构6.1 while 循环6.2 repeat 循环6.3 loop 循环 7、游标 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以…...

Vue2+OpenLayers实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)
目录 一、案例截图 二、安装OpenLayers库 三、代码实现 3.1、HTML页面 3.2、初始化变量 3.3、创建起始点位 3.4、遍历轨迹点 3.5、画折线 3.6、初始化弹窗信息 3.7、初始化地图上标点的点击事件 3.8、完整代码 四、Gitee源码 一、案例截图 二、安装OpenLayers库 n…...

基于Spring Boot的城市垃圾分类管理系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

linux: 文本编辑器vim
文本编辑器 vi的工作模式 (vim和vi一致) 进入vim的方法 方法一:输入 vim 文件名 此时左下角有 "文件名" 文件行数,字符数量 方法一: 输入 vim 新文件名 此时新建了一个文件并进入vim,左下角有 "文件名"[New File] 灰色的长方形就是光标,输入文字,左下…...
Eclipse Debug 调试
关于Eclipse的Debug调试功能,有几点重要的信息可以分享。 Debug的启动方式:Eclipse提供了多种启动程序调试的方式,包括通过菜单(Run –> Debug)、点击“绿色臭虫”图标、右键选择Debug As以及使用快捷键(F11)【0†source】。 调试中最常用…...
vue3+ts的<img :src=““ >写法
vue3ts的<img :src"" >写法<img :src"datasetImage" alt"数据分布示意图" /><script setup lang"ts">const datasetImage ref();datasetImage.value new URL(../../../assets/images/login-background.jpg, impo…...

《心血管成像的深度学习》论文精读
Deep Learning for Cardiovascular Imaging 重要性:由深度学习 (DL) 的进步推动的人工智能 (AI) 有可能重塑心血管成像 (CVI) 领域。虽然 CVI 的 DL 仍处于起步阶段,但研究正在加速,以帮助获取、处理和/或解释各种模式下的 CVI,其…...
RDP、VNC、SSH 三种登陆方式的差异解析
一、引言 在计算机系统管理和远程访问的领域中,RDP(Remote Desktop Protocol,远程桌面协议)、VNC(Virtual Network Computing,虚拟网络计算)和 SSH(Secure Shell)是三种广…...
3d 可视化库 vister部署笔记
目录 vister 开源地址: python版本: 在python3.10以上版本安装 viser, 测试ok的案例: 立方体mesh选中 SMPL-X可视化 ok 推理代码: vister 开源地址: GitHub - nerfstudio-project/viser: Web-based 3D visualization + Python python版本: 在python3.10以上版本…...
操作系统八股文学习笔记
总结来自于javaguide,本文章仅供个人学习复习 javaguide操作系统八股 文章目录 操作系统基础什么是操作系统?操作系统主要有哪些功能?常见的操作系统有哪些?用户态和内核态为什么要有用户态和内核态?只有一个内核态不行嘛?用户态和内核态是如何切换的?系统调用 进程和线程…...

k8s基础(6)—Kubernetes-存储
Kubernetes-存储概述 k8s的持久券简介 Kubernetes的持久卷(PersistentVolume, PV)和持久卷声明(PersistentVolumeClaim, PVC)为用户在Kubernetes中使用卷提供了抽象。PV是集群中的一块存储,PVC是对这部分存储的请求。…...

K8S--配置存活、就绪和启动探针
目录 1 本人基础环境2 目的3 存活、就绪和启动探针介绍3.1 存活探针3.2 就绪探针3.3 启动探针 4 探针使用场景4.1 存活探针4.2 就绪探针4.3 启动探针 5 配置存活、就绪和启动探针5.1 定义存活探针5.2 定义一个存活态 HTTP 请求接口5.3 定义 TCP 的就绪探针、存活探测5.4 定义 g…...

永久免费工业设备日志采集
永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…...
详解 Docker 启动 Windows 容器第二篇:技术原理与未来发展方向
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言所遇问题问题 1:Docker 容器启动的 Windows 实例调用了 KVM 驱动,但为什么用 virsh list 命令查不到虚拟机?这意味着它不是一…...
HC32L136K8TA单片机输出互为反相双路PWM
可这里可以参考stm32的代码看看 HC32L136K8TA的机制跟32差不多 以使用一个通用定时器输出两路互为反相的 PWM 波,但需要通过一定的配置技巧实现。与高级定时器(如 STM32 的 TIM1、TIM8 等)不同,通用定时器通常没有直接的互补输出…...

数据分析-55-时间序列分析之获取时间序列的自然周期时间区间
文章目录 1 获取某年的总天数1.1 get_year_days()1.2 应用函数2 获取某年的总周数2.1 get_year_weeks()2.2 应用函数3 获取某日期属于某年的周数3.1 get_time_yearweek()3.2 应用函数4 获取某年某周的开始时间和结束时间4.1 get_week_start_end()4.2 应用函数5 获取往前num周期…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...